Jak vypsat každý sudý řádek souborů?
cat file | a pak co?
Případně to jde i pomocí sedu:
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)sedu
Asked: 2014-11-06 18:59:03 +0100
Seen: 538 times
Last updated: Nov 26 '14
Copyright students of FIT CTU and others, 2014. Content on this site is licensed under a Creative Commons Attribution-ShareAlike 4.0 International license.