gpt4 book ai didi

regex - 第 n 次出现正则表达式的 sed 打印行

转载 作者:IT王子 更新时间:2023-10-29 01:15:29 25 4
gpt4 key购买 nike

假设我们有以下数据

 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' 之类的东西,但那是无效的。

最佳答案

这可能对你有用(GNU sed):

sed -rn 's/^\s*(\S+)\s+(\S+\s+){2}(B34)\s+(\S+)/\1, \3 \4/;T;s/B//g;p' file

关于regex - 第 n 次出现正则表达式的 sed 打印行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19390790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com