Выполнение awk для каждого файла, найденного с помощью find, а затем перенаправление результата на новое имя файла

Я пытаюсь найти результаты поиска и затем выполнить awk для печати первых двух столбцов. Затем я хочу перенаправить эти результаты на новое имя файла для каждого файла, используя существующее имя файла с дополнительным суффиксом, добавленным к имени. Файлы в каталоге с исходным исходным кодом, оставшимся в файле file.txt, и новые файлы с именем file-new.txt

Например:

find -type f -iname "*.txt" -exec awk '{print $1, $2}' {} \; 

Что мне нужно добавить для этого? Будет ли использование sed лучшим выбором?

One Solution collect form web for “Выполнение awk для каждого файла, найденного с помощью find, а затем перенаправление результата на новое имя файла”

Самый простой способ – использовать перенаправление вывода awk. Перенос вывода Awk очень прост в использовании в простых случаях: файл открывается при первом переадресации, а последующие перенаправления к тому же имени файла используют существующий файловый дескриптор.

Если вы хотите добавить суффикс к имени файла, это будет так же просто, как

 find -type f -iname "*.txt" -exec awk '{print $1, $2 >(FILENAME "-new")}' {} + 

Но вы можете сделать более сложное преобразование имени файла (здесь пересчитано только в первой строке каждого входного файла):

 find -type f -iname "*.txt" -exec awk ' FNR==1 {out=FILENAME; sub(/\.[^.]*$/, "-new&", out) || out = out "-new"} {print $1, $2 >out} ' {} + 
  • Есть ли способ сделать «полную файловую буферизацию» внутри цепочки команд?
  • Как перенаправить список человеческих читаемых путей на другую команду?
  • Сменить пароль в режиме без звука
  • Вывод команды на трубе для ввода команды run / backgrounded
  • Почему я продолжаю уничтожать свои текстовые файлы?
  • Почему я не могу перенаправить имя пути с одной команды на «cd»?
  • Каковы некоторые практические применения перенаправления STDIN?
  • тире: Труба STDIN к нескольким командам и их вывод в STDOUT в определенном порядке
  • Игнорируйте эту переменную строку так, чтобы она не выводила
  • перенаправление stderr не работает в csh
  • Как создать цикл перенаправления
  • Не удалось захватить выход программы
  • Interesting Posts

    Увеличение настроек `ulimit -u` временно в OSX Yosemite

    Используя цикл «for», запустите сценарий для всех файлов в каталоге

    Каковы существенные различия между различными раковинами?

    Как использовать альтернативы обновлений в альтернативном корневом пути

    Синтаксис для команды rm. Обеспокоенный использованием опции -r

    Что мне нужно сделать дополнительно, чтобы запустить X, чтобы не заканчиваться на черном экране?

    Как написать команду раздела?

    обновление BIOS без MS Windows (или флоппи-дисковода)

    Получить значение DISPLAY по имени пользователя

    Больше не может запускать Chrom {ium | e} как обычный пользователь

    Невозможно загрузить или закрыть Fedora 25 с последними ядрами, это вопрос о нуворише

    найти файлы с контуром каталога исключить подкаталоги

    Исполняемый файл Linux не работает с «Файл не найден», хотя файл есть и в PATH

    Запись вывода wget или curl в пользовательское имя файла на основе URL-адреса

    как проверить правильность изменения пароля root

    Linux и Unix - лучшая ОС в мире.