仅在sed中匹配时才打印特定行号

use*_*692 4 shell sed line match

只有在sed(Linux流编辑器)中存在匹配时,如何打印(特定)行?假设我有第三行,只有符合匹配标准才能打印; 我怎么打印这个?

我正在将命令的输出传递给sed,并且不希望再次使用sed输出来管道sed:

| sed -ne ''"$currline"'p' | sed -n '/state/p'`
Run Code Online (Sandbox Code Playgroud)

另外,我将输出分配给带有反引号的变量.


给定输入A和B以及搜索模式state,A的输出应该是行3 stateless(注意3是数据的一部分),而B应该是空的:

Input A              Input B
1 state              1 state
2 statement          2 statement
3 stateless          3 statless
4 stated             4 stated
5 estate             5 estate
Run Code Online (Sandbox Code Playgroud)

Jon*_*ler 5

sed -n '3{/state/p;}' $file
Run Code Online (Sandbox Code Playgroud)

3匹配第3行; 第3行的行动是'如果你找到/state/,打印'; 在-n防止线的一般印刷.

另外,你应该避免反击; 使用var=$(cmd1 | cmd2)符号而不是var=`cmd1 | cmd2`符号更好.