командная строка unix, например найти, чтобы запустить сценарий для многих двоичных файлов, который выводит его в файл .txt

Я хотел бы запустить скрипт, скажем, convert.py (который преобразует двоичный файл в ascii, но выводит в стандартный вывод) для примерно 30 * .gz файлов, но вместо вывода на экран он переходит в * Файл .txt, аналогичный таковому: convert.py jonny.gz> jonny.txt Как мне это сделать с помощью цикла for или команды find? спасибо

0
задан 28 August 2019 в 00:51

1 ответ

Простой for цикл:

for f in ./*.gz; do
    convert.py "$f" > "${f%.gz}.txt"
done

Используя эти find команда:

find . -maxdepth 1 -name '*.gz' -exec sh -c 'convert.py "$1" > "${1%.gz}.txt"' sh {} \;

или

find . -maxdepth 1 -name '*.gz' -exec sh -c '
  for f; do convert.py "$f" > "${f%.gz}.txt"; done
' sh {} +

(нет действительно никакого преимущества для использования find в этом случае).

3
ответ дан 23 October 2019 в 04:20

Другие вопросы по тегам:

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