shell 脚本如何将一个文本文件中每一行第五列的绝对值大于该行第二列的行删除。

如题所述

awk ' { if( ($5>0?$5:-1*$5)<=$2 ){ print($0); } }' datfile
awk 是linux通用的脚本工具《linux awk》
awk自动对每一行:整行储存进 $0 ,每个字段 分别存进 $1 ... $n 。并对每一行执行代码。
原理是 符合条件的行不print。等于就是删除
if(){} 是《if条件语句》
($5>0?$5:-1*$5) 是《条件表达式》这个表达式实现了绝对值功能。
欲知详情搜索书名号内关键字。追问

你好,我刚学shell,能写个完整点的解决这个问题的代码吗,谢谢!

追答

这命令 已经试过了,就第一行 awk 开始的代码

温馨提示:答案为网友推荐,仅供参考
相似回答