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

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

我怎样才能将单词“cat”写入文件夹中的每个.txt文件?

答案1

一个简单的 for 就可以完成这个工作:

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

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

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

附加:

echo "cat" | tee -a *.txt

覆盖:

echo "cat" | tee *.txt

答案2

如果文件不为空,则无需循环即可使用。在开始时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:)

答案3

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”。

相关内容