如何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>
只打印匹配行的匹配部分,每个这样的部分在单独的输出行上。查看更多详情。
与 sed
:
awk '{print }' tes.txt|sed 's/.*size=\(.*\),$//'
这是一个 grep 解决方案:
grep -oP '(?<=size=)\d+' file
目前它搜索整个文件,所以如果你想将它限制在一个特定的行,你必须之前使用 awk。
我想问一个关于'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>
只打印匹配行的匹配部分,每个这样的部分在单独的输出行上。查看更多详情。
与 sed
:
awk '{print }' tes.txt|sed 's/.*size=\(.*\),$//'
这是一个 grep 解决方案:
grep -oP '(?<=size=)\d+' file
目前它搜索整个文件,所以如果你想将它限制在一个特定的行,你必须之前使用 awk。