如何grep文本文件中的数字? [已关闭]

问题描述 投票:0回答:6

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

awk '{print $8}' tes.txt

output : size=21341,

但我只想 grep 号码“21341”,你能给我如何 grep 号码的解决方案吗?

bash awk grep
6个回答
1
投票

sed
:

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

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

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

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


0
投票

要提取

=
后面的部分,请将输出通过管道传输到
cut

awk '{print $8}' tes.txt | cut -d= -f2

0
投票
awk '{split ($8, s, "="); print s[2]}' tes.txt
output: 21341

0
投票

您可以使用

sub
中的
awk
功能来做到这一点。

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

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


0
投票

这是一个 grep 解决方案:

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

目前它会搜索整个文件,因此如果您想将其限制为某一特定行,则必须先使用 awk。

© www.soinside.com 2019 - 2024. All rights reserved.