BASH:将现有文件内容添加到现有文件

BASH:将现有文件内容添加到现有文件

我必须补充内容文件到每个文件的末尾prefs.js。尝试过find -name 'prefs.js' -exec more filecontent >> '{}' \;,但没有用。

答案1

重定向不会对每个文件都发生(这很棘手)。解决方法是为每个文件生成一个新的 shell:

find -name 'prefs.js' -exec sh -c 'cat filecontent >> $1;' - '{}' \;

-必要的,因为它成为第零个($0)参数sh

此外,您必须使用cat而不是 more。More 是一个分页器,它允许用户滚动浏览文档。

答案2

使用 xargs:

find -name 'prefs.js' | xargs -n1 bash -c 'cat content_to_be_added >> $1;' -

答案3

for f in `find -name 'prefs.js'`
do
    echo $f
    #cat $f >> outfile
    cat infile >> "$f"
done

答案4

怎么样

find -name 'prefs.js' -exec dd if=filecontent conv=notrunc oflag=append of='{}' \;

假设filecontent该文件包含您想要附加到prefs.js文件的内容。

相关内容