我需要查询文件夹中的所有javascript文件(“pre.js”除外)并在每个文件前面加上pre.js的内容
单个文件似乎相当容易:
cat pre.js |cat - foo.js > /tmp/out && mv /tmp/out foo.js
但我在文件夹
中有多个文件答案 0 :(得分:1)
这需要一个简单的单行循环:
for f in foo.js bar.js baz.js; do cat pre.js $f > /tmp/out && mv /tmp/out $f; done
答案 1 :(得分:1)
另一个答案的稍微更一般的形式:
for i in *.js ; do if [[ "${i}" != pre.js ]] ; then cat pre.js "${i}" > $$ ; mv $$ "${i}" ; fi ; done
答案 2 :(得分:1)
ed
是标准编辑器:
shopt -s extglob nullglob
for f in !(pre).js; do ed -s "$f" << END
0r pre.js
w
q
END
done
答案 3 :(得分:0)
这应该做:
find folder/ -name '*.js' \! -name 'pre.js' -exec sh -c 'cat pre.js "$1" > /tmp/out && mv /tmp/out "$1"' _ {} \;