【发布时间】:2020-02-17 11:00:24
【问题描述】:
我在不同的子目录中有许多文本文件,每个文件的文件扩展名为“.pro”。
每个文件包含一行或多行,其中出现“PRO <name>”或“Function <name>”文本。
<name> 后跟一个逗号,后跟变量。
我想生成一个包含 2 列的列表:
第一列:完整文件名(带完整路径)
第二列:“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, slot, ChannelId, counts, pgm=pgm
...
结束
【问题讨论】:
-
感谢您为您的问题付出了这么多努力。想请您保持您的问题简单,您能否编辑您的问题并更清楚地添加预期的输出,然后让我们知道。
标签: linux bash shell grep find