在文本文件中查找特定单词
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在文本文件中查找特定单词相关的知识,希望对你有一定的参考价值。
我在不同的子目录中有许多文本文件,因此每个文件的文件扩展名均为“ .pro”。
每个文件包含一行或多行,其中出现文本“ PRO <name>
”或“ Function <name>
”。<name>
之后是逗号,后跟变量。
我想生成一个由两列组成的列表:
第一列:完整文件名(具有完整路径)
第二列:“ PRO
<name>
”或/和“功能<name>
对于下面的两个示例文件/脚本,结果为:
<full path>read_scenes_out.pro PRO READ_SCENES_CLA
<full path>read_scenes_out.pro PRO PRO READ_TAU_IN
<full path>read_scenes_out.pro FUNCTION READ_HRIT
<full path>read_scenes_in.pro PRO READ_SCENES_FLG
<full path>read_scenes_in.pro PRO READ_SCENES_ELEV
<full path>read_scenes_in.pro PRO READ_TAU_IN
<full path>read_scenes_in.pro FUNCTION READ_HRIT2
由于我是Linux的初学者,所以我自己无法解决此问题。唯一的小小的成功是两个发现了如何在所有子目录中列出pro文件的所有完整路径:
查找。 | grep“ .pro” |排序-z
也许可以与that answer结合使用。
两个示例文件(“ ...”是用于编程代码的占位符:
文件名1名为“ read_scenes_out.pro”]
PRO READ_SCENES_CLA,ICLA,INDATE = INDATE
...
结束
PRO READ_TAU_IN,TAU,INFILE = INFILE
...
结束
FUNCTION READ_HRIT,插槽,ChannelId,计数,pgm = pgm
...
结束
文件名2名为“ read_scenes_in.pro”]
PRO READ_SCENES_FLG,NTEST,INDIR = INDIR,INDATE = INDATE
...
结束
PRO READ_SCENES_ELEV,IELEV,INDIR = INDIR
...
结束
PRO READ_TAU_IN,TAU,INFILE = INFILE
...
结束
FUNCTION READ_HRIT2,插槽,ChannelId,计数,pgm = pgm
...
结束
尝试类似的东西
find . -name '*.pro' \
-exec grep -Eo '(PRO|FUNCTION)[ ]+[^ ,]+' /dev/null +
两个字符类[...]
中的空格均由空格和制表符组成。
grep
输出的文件名分隔符是冒号;如果很重要,则不难通过简单的sed
后处理步骤来更改此设置。或从grep
切换到Awk,以更好地控制输出的生成方式。
以上是关于在文本文件中查找特定单词的主要内容,如果未能解决你的问题,请参考以下文章