То, что вы пытаетесь сделать, не используя цикл оболочки , это:
awk -i inplace -v inplace::suffix=.bak 'FNR==35{$0="5) 1-4"}1' fitting_file*.feedme
Обратите внимание, что в отличие от sed, который может просто считать строки во всех входных файлах, awk имеет NR
для отслеживания количества записей (по умолчанию строк) во всех файлах и FNR
для тех же, но только внутри текущего файла.
Выше используется GNU awk для редактирования на месте, точно так же как GNU sed имеет -i
для этого. По умолчанию awk на MacOS - BSD awk, а не GNU awk, но вы должны установить GNU awk, так как он не содержит всех ошибок, которые имеет BSD awk, и имеет массу чрезвычайно полезных расширений.
Если вы просто хотите использовать awk от MacOS, тогда это будет что-то вроде:
find . -name 'fitting_file*.feedme' -exec sh -c "\
awk 'FNR==35{\$0=\"5) 1-4\"}1' \"\$1\" > \"\$1.bak\" &&
mv -- \"\$1.bak\" \"\$1\"
" sh {} \;
, что, очевидно, становится довольно сложным - я, вероятно, поместил бы скрипт awk + mv в файл для выполнения из sh -c
или просто прибегнул бы к самому циклу оболочки, если столкнулся с этой альтернативой (или похожим кошмаром цитирования с xargs) !)