将一个单词写入文件夹中的每个 txt 文件

Qub*_*bix 10 command-line scripts

如何将“cat”一词写入文件夹中的每个 .txt 文件?

Rav*_*ina 20

一个简单的 for 将完成工作:

for i in ./*.txt; do echo 'cat' >> "$i"; done;
Run Code Online (Sandbox Code Playgroud)

这将获得当前目录中所有 txt 文件的列表,循环遍历它们并将echo它们放入(附加到内容)。您可以更改>>>, 以使用 cat 覆盖文件内容。

您可以做的另一件事是使用tee将流重定向到多个文件。

附加:

echo "cat" | tee -a *.txt
Run Code Online (Sandbox Code Playgroud)

覆盖:

echo "cat" | tee *.txt
Run Code Online (Sandbox Code Playgroud)

  • @hakermania 应该因“模糊重定向”而失败 (4认同)

Zan*_*nna 13

如果文件不为空,则sed无需循环即可使用。要cat在开始时添加:

sed 'i\cat' *.txt
Run Code Online (Sandbox Code Playgroud)

最后添加:

sed 'a\cat' *.txt
Run Code Online (Sandbox Code Playgroud)

在第二行之后添加:

sed '2 a\cat' *.txt
Run Code Online (Sandbox Code Playgroud)

在其中添加前行foo

sed '/foo/ i\cat' *.txt
Run Code Online (Sandbox Code Playgroud)

但它不适用于空文件。一种错误。

(要实际写入文件测试你需要的后-i选项:sed -i 'a\cat' *.txt