Я добавить содержимое в виде файла в конце каждого prefs.jsфайла. Попробовал, find -name 'prefs.js' -exec more filecontent >> '{}' \;но это не сработало.
prefs.js
find -name 'prefs.js' -exec more filecontent >> '{}' \;
Перенаправление не происходит для каждого файла (это сложно). Обходной путь - создать новую оболочку для каждого файла:
find -name 'prefs.js' -exec sh -c 'cat filecontent >> $1;' - '{}' \;
-Необходимо, так как она становится нулевой ( $0) аргументsh
-
$0
sh
Кроме того, вы должны использовать catвместо большего. More - это пейджер, который позволяет пользователям пролистывать документ.
cat
Используйте xargs:
find -name 'prefs.js' | xargs -n1 bash -c 'cat content_to_be_added >> $1;' -
for f in `find -name 'prefs.js'` do echo $f #cat $f >> outfile cat infile >> "$f" done
Это работает, чтобы написать небольшой скрипт оболочки cbd.sh
#!/bin/bash echo "filecontent" >> "$1"
конечно, вы можете заменить эхо с
cat "somefile"
и позвонить
find -name 'cbd[0-9].txt' -exec ./cbd.sh '{}' \;
в том же каталоге.
Синтаксис команды find с ее -exec - настоящий монстр.
Как насчет
find -name 'prefs.js' -exec dd if=filecontent conv=notrunc oflag=append of='{}' \;
Предполагается, filecontentчто это файл, содержащий то, что вы хотите добавить к prefs.jsфайлам.
filecontent