unix - 将文件的文件内容添加到所有* .html文件中

时间:2016-03-21 19:31:19

标签: unix prepend

任何人都知道如何通过命令行执行以下操作?

  • 我有X个html文件
  • 我想将file2.txt的内容添加到所有这些html文件

结果将是

  • 每个文件都会将file2.txt的内容放在前面。

2 个答案:

答案 0 :(得分:1)

在bash中,你可以

prefix=$(cat file2.txt)
for file in *.html; do
  html=$(cat $file)
  echo "$prefix$html" > $file
done

修改

或者,使用临时文件:

for file in *.html; do
  temp=$(mktemp /tmp/html.XXXXXX)
  cat file2.txt > $temp
  cat $file >> $temp
  mv $temp $file
done

答案 1 :(得分:0)

您可以在编辑器ed中使用vi命令。您可以使用r file附加文件,但在第一行之前需要它。 ed命令为0 r file。写作和退出与这里结构将结合:

for f in *.html; do
    ed -s "${f}" <<EOF
0 r file2.txt
w
q
EOF

done