获取以数字开头的行

Ank*_*mar 0 regex diff awk grep

我有一个 bash 命令diff file1 file2,相应的输出类似于:

74,100c74,100
<         some text
Run Code Online (Sandbox Code Playgroud)

这只是一个小子集,当然,diff输出中的行开头变化很大(我知道>, <, -, \和 chars from 1to 9,但可能还有其他,我不太确定)。1我只想要以从到 的数字开头的输出行9(不是0,因为我只关心发生更改的位置,并且行号不会以 开头0)。

因此,如果我diff使用该命令进行管道传输,输出应该是:

74,100c74,100
Run Code Online (Sandbox Code Playgroud)

我怎样才能实现这个目标?谢谢...

Rav*_*h13 5

您可以尝试以下吗?根据OP的描述编写。

your_command | awk '/^[1-9]/'
Run Code Online (Sandbox Code Playgroud)

你也可以使用grep太像:

your_commamd | grep "^[1-9]"
Run Code Online (Sandbox Code Playgroud)

解释:

如果awk我们必须使用正则表达式来匹配当前行,我们会在内部使用该正则表达式,/这就是为什么给出的^[1-9]意思是查看行是否从 1 到 9 之间的任何内容开始,以及正则表达式是否与当前行匹配,因为默认情况下会发生当前行的操作打印。