gpt4 book ai didi

awk - 用awk在不同行打印满足条件的行

转载 作者:行者123 更新时间:2023-12-02 15:54:03 33 4
gpt4 key购买 nike

完全是新手。 awk 可以打印以下内容:

w171930 t1 Y z2545377 <--- print this line
w171930 t2 X z4495648
w171931 t1 Y z2555698 <--- print this line
w171931 t2 X z5505690
w171932 t1 Y z2554345 <--- print this line
w171932 t2 X z5507345
w171933 t1 Y z2214694
w171933 t2 Y z8022710
w171933 t3 Y z2143462
w171933 t4 Y z6217556
w171933 t5 Y z9608343
w171933 t6 Y z9984446
w171933 t7 Y z2985572
w171933 t8 Y z6334512 <--- print this line
w171933 t9 X z6503375
w171943 t1 Y z2441603 <--- NO print this line
w171943 t2 X z4644534
w171943 t3 Y z2164440
w171944 t1 Y z2165532

在 $3 == "X"上搜索,如果下一行有 $2 == "t1"则打印上一行

目标

w171930 t1 Y z2545377
w171931 t1 Y z2555698
w171932 t1 Y z2554345
w171933 t8 Y z6334512

我只打印了前一行,但我不知道如何执行完整的条件

awk '$3 == "Y" { Y=$0; next; } { if ($3 =="X") print Y;}'

如果我表达不正确,请见谅

enter image description here

最佳答案

另一种使用 awk 的解决方案:

$ awk '$2=="t1" && third=="X"{print line2}
{line2=line1; line1=$0; third=$3}' ip.txt
w171930 t1 Y z2545377
w171931 t1 Y z2555698
w171932 t1 Y z2554345
w171933 t8 Y z6334512
  • line1 有上一行,line2 有上一行
  • third 保存上一行的第3个字段内容
  • 当当前行的第二个字段为t1时,检查上一行的第三个字段是否为X,如果是,则打印前一行

关于awk - 用awk在不同行打印满足条件的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71806898/

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