如果我在最后一个字段中找到64512到65535之间的任何值,那么整行将被移除:
示例数据:
20170101|1.0.136.0/24|2497 38040 28969
20170101|1.0.137.0/24|2497 38040 33423
20170101|1.0.138.0/24|2497 38040 64603
20170101|1.0.139.0/24|2497 38040 10136
20170101|1.0.142.0/24|2497 38040 65222
20170101|1.0.144.0/24|2497 38040 65535
预期产出:
20170101|1.0.136.0/24|2497 38040 28969
20170101|1.0.137.0/24|2497 38040 33423
20170101|1.0.139.0/24|2497 38040 10136
有什么办法吗?
答案 0 :(得分:0)
不清楚你的意思是"最后一个字段"。此数据是否由|
分隔,使第一行中的最后一个字段为字符串2497 38040 28969
?或者,文本是否用空格分隔,最后一个字段只是28969
?后者更容易做到:
awk '$NF<64512 || $NF > 65535' input-file
如果是前者,你需要更加努力地工作。
答案 1 :(得分:0)
尝试:如果你有相同的Input_file,如下所示的样本,那么下面也会帮助你。
while read a b c
do
if [[ $c > 64512 && $c < 65535 ]]
then
echo $a $b $c
fi
done < "Input_file"
答案 2 :(得分:0)
awk ' $4 < 64512 && $4 > 65535 ' sample.txt
$ 4 - 需要检查的第四个字段大于64512且小于65535,不打印这些行..
答案 3 :(得分:0)
awk '$3<33424' file
20170101|1.0.136.0/24|2497 38040 28969
20170101|1.0.137.0/24|2497 38040 33423
20170101|1.0.139.0/24|2497 38040 10136