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

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

一个简单的将做的工作:

for i in ./*.txt; do echo 'cat' >> "$i"; done; 

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

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

附加:

 echo "cat" | tee -a *.txt 

要覆盖:

 echo "cat" | tee *.txt 

如果文件不为空,则可以使用sed而不进行循环。 要在开始时添加cat

 sed 'i\cat' *.txt 

最后添加:

 sed 'a\cat' *.txt 

要在第二行之后添加:

 sed '2 a\cat' *.txt 

要在包含foo行之前添加:

 sed '/foo/ i\cat' *.txt 

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

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

Python方法:

 #!/usr/bin/env python import sys for i in sys.argv[1:]: with open(i,'w') as fd: fd.write("cat\n") 
  • 它使用sys模块迭代命令行参数
  • 每个命令行参数将作为写入文件打开
  • 带有换行符的“cat”将在转到下一个之前写入文件

用法为./add_cat.py *.txt ,它将对当前工作目录中的所有.txt文件进行操作。 对此的改进可能包括使用命令行参数#1作为字符串来编写而不是硬编码“cat”。