abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
včera 00:22 | Pozvánky

Richard Stallman, zakladatel hnutí svobodného softwaru, projektu GNU a Free Software Foundation, vystoupí 6. června od 17:30 v Brně v kině Scala se svou přednáškou Free Software Movement and GNU/Linux Operating System. Přednášku organizuje Ústav práva a technologií Masarykovy univerzity.

Ladislav Hagara | Komentářů: 31
17.5. 21:11 | IT novinky

Hewlett Packard Enterprise (NYSE:HPE) kupuje společnost Cray Inc. (Nasdaq:CRAY) za přibližně 1,3 miliardy dolarů. Výrobce superpočítačů Cray má v seznamu 500 nejvýkonnějších superpočítačů na světě TOP500 aktuálně 52 superpočítačů. S Intelem staví další superpočítač Aurora. S AMD staví superpočítač za 600 milionů dolarů s názvem Frontier. Ten by měl v roce 2021 převzít vedení v TOP500.

Ladislav Hagara | Komentářů: 4
17.5. 19:44 | Zajímavý projekt

Ondřej Kokešpodcastu Dataři představuje projekt Česká otevřená data. Jedná se o sadu skriptů, které stahují především finanční data poskytovaná státními institucemi. V rozhovoru vysvětluje, že ke správné interpretaci dat jsou potřeba doménové znalosti, a popisuje zkušenosti, jak získat dokumentaci, která u datových sad často chybí.

Fluttershy, yay! | Komentářů: 0
17.5. 10:11 | Zajímavý projekt

Nadace XPRIZE vyhlásila před pěti lety soutěž Global Learning XPRIZE o nejlepší open source výukový program nebo inovativní způsob výuky, který umožní dětem v rozvojových zemích samostatně se naučit číst, psát a počítat. Tento týden byly vyhlášeny výsledky (YouTube). O první místo a 10 milionů dolarů se podělili Kitkit School a onebillion. Pět vítězných výukových programů bylo zveřejněno na GitHubu.

Ladislav Hagara | Komentářů: 19
17.5. 06:00 | Komunita

Dalších šest produktů od společnosti ThinkPenguin získalo certifikaci RYF (Respects Your Freedom, Respektuje vaši svobodu) udělovanou Nadací pro svobodný software (FSF). Certifikaci RYF má nově například také převodník z USB na paralelní port (LPT). Certifikace RYF byla představena v říjnu 2012.

Ladislav Hagara | Komentářů: 9
16.5. 23:11 | Pozvánky

Dnes je Světový den přístupnosti, anglicky Global Accessibility Awareness Day (GAAD, Wikipedie). Světový den přístupnosti vznikl v roce 2012. Jeho smyslem je šířit osvětu v této oblasti mezi širokou veřejností a motivovat ji k diskusím, přemýšlení a chuti dozvědět se o tématice přístupnosti webu, dokumentů, software, mobilních aplikací, asistivních technologiích či potřebách lidí s nejrůznějším postižením něco nového. O víkendu

… více »
Ladislav Hagara | Komentářů: 0
16.5. 19:55 | Pozvánky

Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 164. brněnský sraz, který proběhne v pátek 17. května od 18:00 v restauraci Přístav u Vodů u Brněnské přehrady aneb v hantecu u Prýglu.

Ladislav Hagara | Komentářů: 2
16.5. 07:00 | Nová verze

Byla vydána nová major verze 9.0 svobodného systému pro řízení přístupu k síti (NAC) PacketFence (Wikipedie). Přehled novinek v oznámení o vydání. Pro uživatele předchozích verzí jsou k dispozici poznámky k aktualizaci.

Ladislav Hagara | Komentářů: 2
16.5. 06:00 | Bezpečnostní upozornění

K názvům Microarchitectural Data Sampling (MDS) a ZombieLoad Attack aktuálních bezpečnostních chyb v procesorech Intel přibyly nové názvy RIDL a Fallout. Na stránce RIDL and Fallout: MDS attacks jsou k dispozici další videoukázky, technické informace nebo i nástroj pro otestování, zda je konkrétní systém zranitelný. Ke stránkám ZombieLoad Attack, RIDL a Fallout lze přistupovat ze stránky CPU.fail.

Ladislav Hagara | Komentářů: 17
15.5. 18:22 | Zajímavý článek

V Edici CZ.NIC vyšla kniha Porty, bajty, osmibity od Martina Malého. Koupit ji lze tištěnou nebo zdarma stáhnout ve formátech PDF (3,6 MB), EPUB (10,8 MB ) a MOBI (28,7 MB). Jedná se o volné pokračování knihy Hradla, volty, jednočipy. Další informace ke knihám, odkazy na zdrojové kódy nebo errata na webových stránkách Porty, bajty, osmibity a Hradla, volty, jednočipy.

Ladislav Hagara | Komentářů: 25
GPU kterého výrobce aktuálně preferujete pro provoz Linuxu?
 (48%)
 (25%)
 (25%)
 (2%)
Celkem 299 hlasů
 Komentářů: 26, poslední dnes 08:36
Rozcestník

Dotaz: Prohození řádků v souboru

30.1. 12:35 Jakub
Prohození řádků v souboru
Přečteno: 506×
Dobrý den pánové, mám napsaný nějaký script v bash v linuxu pro příkazovou řádku a nemůžu nikde dohledat, jak zaměnit celé řádky v textovém souboru. Třeba 5 řádek za 159. Dá někdo tip?

Odpovědi

30.1. 15:22 debian+
Rozbalit Rozbalit vše Re: Prohození řádků v souboru
napriklad: vstup
1
7
3
4
5
6
2
8
skript.sh:
#!/bin/bash

# ktory < za
ktory=2
za=7
subor="vstup"
vystup="vystup"
riadkov=`cat vstup|wc -l`

# uvod 
cat vstup |head -n $((ktory-1)) > vystup

# za
cat vstup |head -n $za | tail -n 1 >> vystup

# medzi ktory za
cat vstup |head -n $((za-1)) | tail -n $((za-ktory-1)) >> vystup

# ktory
cat vstup |head -n $ktory | tail -n 1 >> vystup

# koniec
cat vstup | tail -n $((riadkov-za)) >> vystup
30.1. 15:41 Ja
Rozbalit Rozbalit vše Re: Prohození řádků v souboru
#!/usr/bin/env bash

if [[ "$2" -gt "$1" ]]; then
  p1="$1"
  p2="$2"
else
  p1="$2"
  p2="$1"
fi

cp data.txt data.out.txt

r1=$(sed -n "${p1}p" data.out.txt)
r2=$(sed -n "${p2}p" data.out.txt)
sed -i "
${p1}i${r2}
${p1}d
${p2}i${r1}
${p2}d
" data.out.txt
cat data.out.txt

30.1. 17:05 debian+
Rozbalit Rozbalit vše Re: Prohození řádků v souboru
Tvoje je efektivnejsie:
[localhost tip]$ time bash skript.sh 

real	0m0,023s
user	0m0,014s
sys	0m0,018s
[localhost tmp]$ time bash skript_Ja.sh 2 7

real	0m0,016s
user	0m0,007s
sys	0m0,009s
31.1. 02:56 Andrej | skóre: 46 | blog: Republic of Mordor | Zürich
Rozbalit Rozbalit vše Re: Prohození řádků v souboru

Tolik UUOC nejen bije do očí, ale možná už i dokonce smrdí z terminálu.

ǑǦŹǓǕǙǞǺǨȞȬḔḦḰḾṊṎṸẄẌỖ
31.1. 17:38 debian+
Rozbalit Rozbalit vše Re: Prohození řádků v souboru
Prepisal som to na lepsie:
#!/bin/bash
 
# ktory < za
ktory=2
za=6
riadkov=`cat data.txt|wc -l`

# uvod 
cat << EOF > data.out.txt
`head -n $((ktory-1)) data.txt`
`head -n $za data.txt | tail -n 1`
`head -n $((za-1)) data.txt| tail -n $((za-ktory-1))`
`head -n $ktory data.txt| tail -n 1`
`tail -n $((riadkov-za)) data.txt`
EOF
cat data.out.txt
31.1. 03:31 Andrej | skóre: 46 | blog: Republic of Mordor | Zürich
Rozbalit Rozbalit vše Re: Prohození řádků v souboru

Chápu to správně tak, že to má vzájemně prohodit nějaké dva řádky a že to má být jenom v Bashi?

Tak potom bych tady měl obecnější prasárnu, která těch záměn umí několik, ale funguje jen tehdy, pokud se soubor vejde do paměti. Definuje funkci swaplines, která přijímá jako parametry dvojice číslel řádků (od 0) k prohození, oddělené pomlčkou. Například tohle by desetiřádkový vstup převrátilo naruby:

swaplines 0-9 1-8 2-7 3-6 4-5

A teď ta funkce swaplines:

swaplines() {
  local -a -i from_to
  local -a file
  local -i from
  local -i to
  local aux
  for aux in "$@"; do
    from_to["${aux%%-*}"]="${aux##*-}"
  done
  readarray -t file
  for from in "${!from_to[@]}"; do
    to="${from_to[from]}"
    aux="${file[from]}"
    file[from]="${file[to]}"
    file[to]="$aux"
  done
  for aux in "${file[@]}"; do
    echo "$aux"
  done
}

Čte to standardní vstup, píše to na standardní výstup a nemá to vůbec žádnou kontrolu chyb syntaxe — tu bych s chutí ponechal čtenáři za cvičení.

ǑǦŹǓǕǙǞǺǨȞȬḔḦḰḾṊṎṸẄẌỖ
31.1. 19:51 pavele
Rozbalit Rozbalit vše Re: Prohození řádků v souboru
Je to taky v bashi, vymění mezi sebou řádek 5 a 8 :-)
#!/bin/bash

vim -e -c '5m 8' -c '7m 4' -c 'wq' soubor.txt 
31.1. 22:38 Semo | skóre: 44 | blog: Semo
Rozbalit Rozbalit vše Re: Prohození řádků v souboru
Ked sa to da v "ed" mode vo vim-e, tak to predsa musi ist aj rovno v ed-e

echo -e "5m8\n8-m5-\nw\nq\n" | ed -s subor.txt
If you hold a Unix shell up to your ear, you can you hear the C.
31.1. 23:02 Andrej | skóre: 46 | blog: Republic of Mordor | Zürich
Rozbalit Rozbalit vše Re: Prohození řádků v souboru

Ano, že má být něco „v bashi“, to se dá chápat různými způsoby. Já vycházím z toho, vim není bash.

ǑǦŹǓǕǙǞǺǨȞȬḔḦḰḾṊṎṸẄẌỖ
1.2. 01:18 Bherzet | skóre: 11 | blog: Bherzetův blog
Rozbalit Rozbalit vše Re: Prohození řádků v souboru
Třeba 5 řádek za 159.
5 za 159, nebo 5. za 159.?

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.