我有两个文件,并且想要使用awk将文件一列中的subtring替换为另一文件中的字符串
f1:
1a1 aaa 777
3_3 ccc 6b6
3.3 ddd 666
f2:
b5g9aaa8y
5_6ccc9.
output:
1a1 b5g9aaa8y 777
3_3 5_6ccc9. 6b6
Run Code Online (Sandbox Code Playgroud)
我想我可以在两个步骤中做到这一点:
但是,是否有一行awk命令来检查子字符串是否在字符串中,然后进行替换?
#抱歉,我应该更清楚地解释它。
我想使用awk提取具有比最后一行更大的列值的行。
这样的样本数据
a 3
a 5
a 4
b 1
c 2
c 3
c 6
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下命令,但没有用
awk '{if(($1!=a) || ($1==a && $2>b)){getline; print}};{a=$1;b=$2}'
Run Code Online (Sandbox Code Playgroud)
预期的输出:
a 3
a 5
b 1
c 2
c 3
c 6
Run Code Online (Sandbox Code Playgroud)
仅应删除“ a 4”行,因为4小于最后一行(5)的第二列。
但是我的代码的实际结果是:
a 5
c 2
c 6
Run Code Online (Sandbox Code Playgroud)
我该如何解决?谢谢
如果标准输入为空,我想打破整个管道。我尝试结合 xargs -r 和 tee,这意味着如果 stdin 为空则不打印和写入,但它失败了
...| upstream commands | xargs -r tee output.txt | downstream commands | ...
任何反馈表示赞赏。