如何grep文本文件中的数字?

How to grep the number in text file?

我想问一个关于'awk'的问题,例如:

awk '{print }' tes.txt

output : size=21341,

但是我只想查询号码“21341”,你能给我解决办法吗?

要提取 = 后面的部分,将输出通过管道传输到 cut:

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

您可以使用 awk 中的函数 sub 来做到这一点。

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

sub(/^.*=/,"",):去掉“=”前的模式,得到数字部分。

awk '{print }' tes.txt | grep -o '[0-9]*'
output: 21341

grep -o <regex> 只打印匹配行的匹配部分,每个这样的部分在单独的输出行上。查看更多详情。

https://www.gnu.org/software/grep/manual/grep.html

sed:

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

这是一个 grep 解决方案:

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

目前它搜索整个文件,所以如果你想将它限制在一个特定的行,你必须之前使用 awk。