![将一个单词写入文件夹中的每个 txt 文件](https://linux22.com/image/1089561/%E5%B0%86%E4%B8%80%E4%B8%AA%E5%8D%95%E8%AF%8D%E5%86%99%E5%85%A5%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%AD%E7%9A%84%E6%AF%8F%E4%B8%AA%20txt%20%E6%96%87%E4%BB%B6.png)
我怎样才能将单词“cat”写入文件夹中的每个.txt文件?
答案1
一个简单的 for 就可以完成这个工作:
for i in ./*.txt; do echo 'cat' >> "$i"; done;
这将获取当前目录中所有 txt 文件的列表,循环遍历它们并将echo
cat 放入其中(附加到内容)。您可以更改>>
为>
,以使用 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”。