gpt4 book ai didi

linux - 在每行的开头添加带有文件名的字符串

转载 作者:太空宇宙 更新时间:2023-11-04 05:14:33 25 4
gpt4 key购买 nike

我在 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

你能帮我吗?

如有任何疑问,请询问

谢谢!

最佳答案

使用-H选项,为每行搜索的文件名添加前缀。 ^ 匹配每行的开头:

grep -H ^ *.txt > bigfile.txt
<小时/>

请注意,这样做:

grep -H ^ *.txt > bigfile.txt
grep searchstring bigfile.txt

...可以简化为:

grep -H searchstring *.txt

...效率大约是原来的两倍。

关于linux - 在每行的开头添加带有文件名的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51085032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com