Я хочу удалить первую строку из всех файлов каталога и сохранить соответствующий вывод, добавив '.tmp' в конце каждого имени файла. Например, если есть файл с именем input.txt
с следующим содержанием:Перенаправить вывод xargs в файл
line 1
line 2
Я хочу, чтобы создать файл в том же каталоге с именем input.txt.tmp
, который будет иметь следующее содержание
line 2
Я попробовать эту команду:
find . -type f | xargs -I '{}' tail -n +2 '{}' > '{}'.tmp
проблема заключается в том, вместо того чтобы писать вывод в отдельные файлы с .tmp
суффиксом, он создает только один грех gle файл с именем {}.tmp
. Я понимаю, что это происходит потому, что перенаправление вывода выполняется после завершения xargs
. Но есть ли способ сообщить xargs
, что выходное перенаправление является частью его аргумента?
Спасибо это решает мою проблему :) –
Running «ш -c» из 'find' опасно, если имена файлов сделаны злыми людьми , Попробуйте: «коснитесь» foo; echo Naughty naughty - я мог бы удалить файл "перед запуском выше. –