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

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

Например:

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

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

  • "> / Dev / null 2> & 1" в выражении `if`
  • Как я могу отправлять чтения и записи в одном дескрипторе файла в разные места?
  • Что происходит с выходом процесса, который был отменен и потерял свой терминал?
  • Как перенаправить stdout в файл и прочитать из того же файла одновременно с другой задачей?
  • Для перенаправления ввода существуют функциональные различия между bash / zsh <<< «$ (<файл)» и традиционным <file?
  • Перенаправить stdout через ssh
  • Построение вывода скрипта bash после перенаправления stderr
  • Что означает «sh a.sh <& 0> & 0»?
  • 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} ' {} + 
    Interesting Posts

    Создайте команду для исполняемого файла Linux

    Как найти текст, скопировать его и вставить в следующую строку в файле?

    Кросс-компиляция для ARM без установки чего-либо

    изящно завершающие процессы с killall <имя_процесса>

    Извлечь абзац, разделенный на *** с помощью AWK

    Самая длинная общая подстрока с использованием grep

    как перенести все файлы из канала в каталог?

    Старая бинарная работа над Linux?

    Можно ли использовать клавиатуру частного ноутбука для настольного компьютера интрасети?

    мы можем автоматически подождать требуемое время для smartmontools / smartctl?

    Чрезмерное использование процессора с помощью vlock в качестве команды блокировки tmux

    Kali Linux live usb persistance

    Как и где метаданные файловой системы кэшируются в Linux

    Как проверить прогресс при клонировании диска с помощью `dd`?

    Сопоставьте первые поля двух разделенных табуляцией файлов и значений соответствия печати

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