我想将text连接到dir中的所有文件。
我使用for像以下代码一样完成这项工作。
我想知道是否有更简洁的代码可以执行相同的操作?

for fn in dir/*; do
  cat text >> $fn
done

最佳答案

如果text是文件名,请尝试:

tee -a dir/* <text >/dev/null
如果text实际上是您要附加的某些文本,则以bash表示:
tee -a dir/* <<<"text" >/dev/null
tee是一个实用程序,可从标准输入中读取并将其写入命令行中的任意数量的文件中。它还将标准输入复制到标准输出,这就是上面使用>/dev/null的原因。 -a选项告诉tee追加而不是覆盖。
变异
kvantour所建议,将输入重定向放在行的开头可能更清楚:
<text tee -a dir/* >/dev/null
(在上面,假定text是文件名)

07-24 09:44
查看更多