将单词写入文件夹中的每个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”。