Mam ponad 1000 plików i chciałbym wyciągnąć z każdego nich linijki 2,4 i 6 i zapisać w innym pliku

Posted on Fri 24 September 2004 in Tips text {sed, awk, perl, etc.} • 1 min read

Mam ponad 1000 plików i chciałbym wyciągnąć z każdego nich linijki 2,4 i 6, zapisać we wspólnym osobnym pliku. Najlepiej by było gdyby wszystkie linijki były oddzielone tabulacją.


Skoro nikt się nie kwapi... to może:

cd katlog
for i in * ; do
awk '2,6{ if(NR==2||NR==4||NR==6) printf("%s\t",$0)}' "$i" >>plik
done

a może coś takiego:

for file in `ls`; do echo "--- $file ---" ; sed -n '2p;4p;6p' $file;
done >>wynik