使用sed匹配模式的编号行

alm*_*mas 16 unix shell sed

我正在编写脚本来搜索与某些模式匹配的行.我必须使用sed这个脚本.这适用于搜索和打印匹配的行:

sed -n /PATTERN/p
Run Code Online (Sandbox Code Playgroud)

但是,我还想在行前面打印匹配的行号.我怎么能用sed做到这一点?

Pau*_*ce. 17

你可以使用grep:

grep -n pattern file
Run Code Online (Sandbox Code Playgroud)

如果你使用=sed行号将被打印在单独的行,而不是在操作模式可用空间.但是,您可以将输出通过管道传输到另一个sed实例,以合并行号和它应用的行.

sed -n '/pattern/{=;p}' file | sed '{N;s/\n/ /}'
Run Code Online (Sandbox Code Playgroud)


Pri*_*ley 12

= 用于打印行号.

sed -n /PATTERN/{=;p;}
Run Code Online (Sandbox Code Playgroud)

  • @zum:移动你的引号,使它们在剧本之外:`sed -n"/ $ pattern/{=; p;}""$ FILE"` (3认同)

小智 9

对于sed,使用以下来获取行号

sed -n /PATTERN/= 
Run Code Online (Sandbox Code Playgroud)