Existem muitas formas. Aqui estão alguns:
-
awk
awk 'FNR==7 || FNR==15' *.txt
FNR
é o número da linha do arquivo atual. Como a ação padrão emawk
quando uma expressão é avaliada como true é imprimir a linha atual, isso imprimirá as linhas 7 e 15 de cada arquivo.txt
.
O awk é a única ferramenta que eu sei que pode facilmente (outros podem fazer isso, mas não tão simples) distinguir entre o número da linha de toda entrada e o número da linha do arquivo atual. Portanto, as outras sugestões envolvem loops de shell:
-
sed
for f in *.txt; do sed -n '7p;15p' "$f"; done
-
Perl
for f in *.txt; do perl -ne 'print if $.==7 or $.==15' "$f"; done
Ou, para evitar o loop de shell:
perl -ne '$c++; print if $c==7 or $c==15; $c=0 if eof' *.txt