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

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

Например:

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

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

  • безопасный способ перенаправления некоторого вывода с помощью exec
  • "> / Dev / null 2> & 1" в выражении `if`
  • awk - читать программу И ввод со стандартного ввода?
  • Raspbian: проблема с перенаправлением вывода в скрипте udev
  • Ошибка захвата LS в файл
  • перенаправление stdin для скрипта, запрашивающего ввод
  • Перенаправление stdout и stderr все еще печатает на stdout
  • Обертка скрипта оболочки с тройником
  • 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

    Греп что-то конкретное из результатов последнего исполнения?

    Как настроить BIND для имени домена с собственными серверами имен?

    Почему это регулярное выражение не работает?

    Как восстановить окна сочувствия на Gnome 3?

    Почему в руководстве по установке Debian предлагается выполнить «синхронизацию» после необработанной копии файла изображения на USB-ключ?

    Как определить интерпретатор команд из сценария оболочки?

    Удалите все файлы в каталогах, кроме тех, чей путь указан в файле

    Есть ли способ убедиться, что работает только один экземпляр systemd @ .service. начинается

    перенаправление std-вывода и std-ошибки

    sed удалить строки httpd.conf

    pulse-audio не распознает мой микрофон Logitech и микрофон веб-камеры

    Чтение длины значения по трубопроводу?

    Быстрый способ размещения веб-сервера на локальном хосте

    Команда diff -B не симметрична?

    rm все файлы справа от "==", напечатанные на экране

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