【发布时间】:2018-12-07 15:54:31
【问题描述】:
我在 bash 中找不到解决此问题的简单方法。
我有几个文件:aaa.txt / bbb.txt / ccc.txt
每个文件的内容是:
aaa.txt
1234
1234
1234
bbb.txt
5678
5678
5678
ccc.txt
10
20
30
40
我需要使用循环将文件名添加到每一行的开头。
大约有 300 个文件,我想将所有文件连接到一个文件中以执行 grep 而不是逐个文件查找,添加文件名的原因是执行该 grep。结果应该是这样的:
aaa.txt
aaa: 1234
aaa: 1234
aaa: 1234
bbb.txt
bbb: 5678
bbb: 5678
bbb: 5678
ccc.txt
ccc: 10
ccc: 20
ccc: 30
ccc: 40
你能帮帮我吗?
如果有任何疑问,请询问
谢谢!
【问题讨论】:
-
grep -e ".*" * > result和 grep 将在行首添加文件名。但是你也可以立即 grep,可能 -
您可以使用
grep -H强制使用文件名进行grep 结果。您没有讨论 如何 您当前正在使用 grep,但我认为这可能会有所帮助:如果您正在执行类似for file in *; do grep "$pattern" "$file"; done > result的操作,则将-H扔进去以获取文件名结果文件。