使用 awk 如何查找文件中 200 到 400 之间的数字?

问题描述 投票:0回答:1

我有一个文件,内容如下:

500 text1 text1 text1 text1 text1 text1 (200) 
200 text2 text2 text2 text2 text2 text2
350 text3 text3 text3 text3 text3 text3
400 text4 text4 text4 text4 text4 text4 (300)
if [ -f file.txt ]      
then
    echo "Input your number:"
    read number
    if [ $number -ge 200 ] && [ $number -le 400 ]
    then 
        echo "The number that matched the file are:"
        awk $1 >= 200 && $8 <= 400 {print} numbers.txt
    else 
        echo "Number must be between 200 and 400."
    fi

尝试提取 200 到 400 之间的数字,然后打印整行,但我只是继续将 while 文件作为输出

bash file awk sum range
1个回答
0
投票

awk
行更改为

awk '$1>=200 && (NF>7) && substr($8,2,length($8)-2)<=400' numbers.txt

使用

substr
从括号表达式中提取数字,并添加字段数量检查,以避免在没有第8个字段时出现错误匹配。

© www.soinside.com 2019 - 2024. All rights reserved.