Grep查找模式但打印另一行

时间:2018-01-30 14:29:46

标签: grep

我想匹配所有西里尔字符,但要将ID打印到文件中。例如:

Author: Doe, John
Title: Оптимизация ресурсного потенциала промышленности города с учетом его конкурентных преимуществ
ID: 1234567

我目前的方法是为西里尔字符寻找:

grep -i -r --include=*{rdf,redif,rdf~} --color="auto" -P -n '[\x{0400}-\x{04FF}]' > cyrillic.txt

如何将ID行打印到文件而不是匹配的行?

2 个答案:

答案 0 :(得分:0)

如果-A1行在匹配模式之后,请使用ID:选项。然后将其传输到另一个grep,以获得ID:行。

 grep -A1 -i -r --include=*{rdf,redif,rdf~} --color="auto" -P -n '[\x{0400}-\x{04FF}]' \
 | grep 'ID: ' > cryllic.txt

答案 1 :(得分:0)

使用grep标志h - 来禁止输出文件名 - 您将输出如下内容:

4:string with matching pattern
5:string with matching pattern
7:string with matching pattern

现在您可以将此输出传输到awk并仅打印第一列,即匹配字符串编号:

{your_grep} | awk -F ':' '{print $1}' > cyrillic.txt