2015-04-18 366 views
1
size=139 
size=9292 
size=140 
size=139 
size=139 
size=10213 
size=139 
size=140 
size=11186 
size=139 
size=139 
size=140 
size=12342 
size=139 
size=139 
size=140 
size=11360 

如何從size.txt中grep具有大於1000的值的行?如何grep值小於或等於值的行

此外,有沒有什麼辦法可以從整個文件夾中找到這個信息,這個文件夾裏有很多這樣的txt文件?

回答

5

使用awk:

awk -F= '$2 > 1000' filename 

這可以用多種文件名中使用:

awk -F= '$2 > 1000' * 

或者與find結合,它做的子文件夾,以及:

find directory -type f -exec awk -F= '$2 > 1000' '{}' \; 

對於後兩者,可能需要打印文件名以及實際結果(模仿王grep的行爲),這可能是這樣實現:

awk -F= '$2 > 1000 { print FILENAME ": " $0 }' * 
+0

萬分感謝!非常感謝你的幫助。 – Ben

1

使用bash builin命令:

while IFS="=" read variable value; do 
    [[ $value -gt 1000 ]] && echo "${variable}=${value}" 
done < file 

輸出:

 
size=9292 
size=10213 
size=11186 
size=12342 
size=11360 
0
egrep "size=[0-9]{4}" size.txt 
+0

這將匹配'size = 0001' –

+0

和'size = 1000'。 – Cyrus

+0

egrep「[1-9] [0-9] {3}」| grep -v「= 1000 $」 –