AWK行尾用正则表达式签名

Mik*_*kov 3 regex bash awk sed

我有一个名为"script.awk"的简单awk脚本,其中包含:

/\/some_simple_string/ { print $0;}
Run Code Online (Sandbox Code Playgroud)

我用它来解析一些包含以下内容的文件:(使用:cat file | awk -f script.awk)

14 catcat one_two/some_thing
15 catcat one_three/one_more_some_simple_string
16 dogdog one_two/some_simple_string_again
17 dogdog one_four/some_simple_string
18 qweqwe firefire/ppp
Run Code Online (Sandbox Code Playgroud)

我希望脚本只打印完全反映"/ some_simple_string [END_OF_LINE]"而不是2或3的笔划.有没有简单的方法可以做到这一点?

我认为,最合适的方法是在正则表达式中添加行尾叹息.所以它只解析以"/ some .."开头的笔画,并在"..string [END_OF_LINE]"的末尾添加一个新行

期望的输出:

17 dogdog one_four/some_simple_string
Run Code Online (Sandbox Code Playgroud)

抱歉混淆,我要求END OF LINE签到正则表达式.正确答案是:

/\/some_simple_string$/ { print $0;}
Run Code Online (Sandbox Code Playgroud)

Ald*_*ath 5

你可以随时使用:

/\/some_simple_string$/ { print $0 }
Run Code Online (Sandbox Code Playgroud)

即不仅匹配"some_simple_string"而且匹配"/ some_simple_string"后跟行的末尾($是正则表达式中的行尾)