Jak vypsat každý sudý řádek souborů?
cat file | a pak co?
Případně to jde i pomocí sed
u:
sed -n '2~2p'
-n
zakáže automatické tisknutí řádků
2~2
vybere druhý řádek a pak po dvou všechny další (pro liché by to bylo 1~2
)
p
je vytiskne
Pak AWK:
awk '{ if (NR%2 == 0) print $0; }'
Cvičí se na osmém cvičení.
imho jednodušší `awk 'NR%2==0' soubor` -- využívá výchozí akce `print $0` a podmínku už ve vzoru, ne v bloku akce
VojtechMyslivec ( 2014-11-26 20:10:35 +0100 )editUrčitě jednodušší. Jen mi to pro začátečníky připadá hůř čitelné, proto jsem radši dal srozumitelnější verzi.
Josef Kokeš ( 2014-11-27 15:24:57 +0100 )editřešení pro "starý" sed
(na fray):
liché řádky sed 'n;d'
sudé řádky sed '1d;n;d'
co to vlastně dělá?
n
vytiskne řádku a do bufferu načte další (toto už je trochu advanced, řekl bych)
d
smaže řádku ("z bufferu")
1d
smaže první řádku
ps: funguje i v "novém" (g
)sed
u
Asked: 2014-11-06 18:59:03 +0100
Seen: 538 times
Last updated: Nov 26 '14