我有一个文件,内容如下:
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 文件作为输出
将
awk
行更改为
awk '$1>=200 && (NF>7) && substr($8,2,length($8)-2)<=400' numbers.txt
使用
substr
从括号表达式中提取数字,并添加字段数量检查,以避免在没有第8个字段时出现错误匹配。