2015-05-16 2 views
1

У меня есть куча файлов с именем dataX.dat, где X - это число, которое колеблется в течение интервала. Я пытался получить седьмую линию каждого из них и принять их в новый файл, используя awk, но он просто получает последний один (один с самым высоким X:Несколько входных файлов на `awk`?

awk 'NR==7' data*.dat 

отображает только седьмую строку data128 . .dat быть 128 последний один из них Почему это сделать так и как я должен делать это так, он принимает все файлы

Спасибо заранее

EDIT:. система заказов файлов в алфавитном порядке и 128 оказывается первым (нет другого номера X начинается с 1), поэтому на самом деле он берет только первый файл.

ответ

2

NR есть во всех файлах, РБН в каждом файле:

awk 'FNR==7' data*.dat 
+1

Большое спасибо, вот что я хотел. – MyUserIsThis

1

Try что-то вроде:

for file in * 
do 
    awk ... "$file" 
done 

Если вам нужно AWK на несколько файлов рекурсивно, а затем использовать найти команду вместо как find . -type f -exec awk ... {} ;

Смежные вопросы