Используя находку и sed для копирования 20-й строки многих файлов в один файл

Видеть те числа слева от вывода? Можно использовать их для обращения к той команде с расширением истории оболочки; ![number] в большинстве оболочек.

Это работает оба в bash и zsh:

$ echo "hello"
hello
$ history | grep hello
 5057  echo "hello"
$ !5057
echo "hello"
hello
$
2
09.12.2015, 16:07
1 ответ
find . -name PKA.dump -type f -exec awk '
   FNR == 20 {print; nextfile}' {} +

NextFile , где доступен (GNU awk и некоторые другие, такие как FreeBSD и последние версии Mawk , а вскоре будут добавляться к стандарту ), пропустит следующий файл Отказ Где нет, это будет проигнорировано (это просто как dereferencing a nextfile переменная); Это все равно будет работать, но полностью прочитает файлы.

Вы все равно можете сделать:

find . -name PKA.dump -type f -exec sed '20q;d' {} \;

, но это означает запустить одну команду SED на файл, который был бы менее эффективным.

3
27.01.2020, 22:05

Теги

Похожие вопросы