伙计我有一个带有此方案的文本文件(只有原始20k行的几行):
Skeet: 120 Mark: 3636 Tatos: 502
Skeet: 190 Mark: 764 Tatos: 468
Skeet: 210 Mark: 2106 Tatos: 302
Skeet: 305 Mark: 510 Tatos: 1900
我想要做的只是打印价值为" Skeet"从150到240.请记住,行数超过10k,因此需要将其插入循环以确保它读取每一行。 Desidered输出:
Skeet: 190 Mark: 764 Tatos: 468
Skeet: 210 Mark: 2106 Tatos: 302
答案 0 :(得分:4)
根据OP,如果你想在变量中有shell变量和比较值,那么下面的内容可以帮助你:
var="Skeet:" ##Shell variable
awk -v val="$var" -v start=150 -v end=240 '$1==val && ($2>=start && $2<=end)' Input_file
答案 1 :(得分:1)
awk '{if ($2 >= 150 && $2 <= 240) print}' file.txt
要通过bash变量设置限制,你可以做一些与@ RavinderSingh13指出的类似的事情:
awk -v start=$foo -v end=$oof '{if ($2 >= start && $2 <= end) print}' file.txt