【发布时间】:2013-10-23 19:43:57
【问题描述】:
假设我们有以下数据
B346879 length: 12 B34 L677
B111879 length: 32 B33 L677
B545879 length: 34 B34 L677
B344879 length: 98 B33 L677
B090879 length: 45 B33 L677
我正在寻找“B34”,所以从这个系列中我想打印第一行和第三行。 但如果我会使用:
cat t.txt | sed -n '/B34/p' | awk '{print $1", "$4" "$5}' | sed 's/B//g'
第 4 行也将被打印,因为“B34”与“B344879”的前 3 个字符匹配。我知道使用 sed 's/pattern/replacement/n' 之类的东西,您只能替换第 n 次出现的正则表达式。但是它如何与打印一起工作。我试过sed -n '/B34/2p'之类的东西,但那是无效的。
【问题讨论】:
-
为什么不直接搜索
\ B34\(带空格)
标签: regex linux shell sed range