我想出了以下命令: grep 'rtl' reg_list.txt | grep -E -o -n "id_\w+" reg_list.txt
这个想法是首先 grep 包含 rtl 内容的行,然后只 grep 以 id_ content 开头的单词。这些数据在表中,第一列包含 rtl,第二列包含 id_ 数据。
问题是,第一个 grep 的结果没有传递给第二个。
reg_list.txt 由不同类型的数据组成,例如行、带有列和行的表。
第一结果grep
被传递到第二grep
,但自从你给第二个grep
文件名,它不会读它(它会从文件读取代替)。
反而:
grep 'rtl' reg_list.txt | grep -E -o -n 'id_[[:alnum:]]+'
Run Code Online (Sandbox Code Playgroud)
我也改成\w
了[[:alnum:]]
因为\w
是 PCRE 正则表达式。如果您grep
是 GNU grep
,则可以保留\w
并使用grep -P
。