2017-06-15 138 views
-1

我想問一個關於「AWK」的問題,例如:如何grep文本文件中的數字?

awk '{print $8}' tes.txt 

output : size=21341, 

,但我只希望到grep號「21341」,你能不能給我說說怎麼到grep數量的解決方案?

+1

正如所寫,這沒有任何意義。你想要大小後的數字=? – John3136

+0

[Grep:Capture just number]可能的重複(https://stackoverflow.com/questions/27827023/grep-capture-just-number) – GilZ

回答

0

要提取部分之後=,管道輸出到cut

awk '{print $8}' tes.txt | cut -d= -f2 
0
awk '{split ($8, s, "="); print s[2]}' tes.txt 
output: 21341 
+1

儘管這段代碼可能會回答這個問題,但提供了關於如何和/或爲什麼的附加上下文它解決了問題會提高答案的長期價值。 – Badacadabra

0

您可以使用該功能subawk做到這一點。

awk '{sub(/^.*=/,"",$8);print $8}' tes.txt 

sub(/^.*=/,"",$8):消除之前的 「=」 的模式,你會得到的數字部分。

0

sed

awk '{print $8}' tes.txt|sed 's/.*size=\(.*\),$/\1/' 
0

這裏是一個grep的解決方案:

grep -oP '(?<=size=)\d+' file 

此刻,所以如果你想將它限制在一個特定它搜索整個文件你必須在之前使用awk。