如何对文本文件中的数字进行 grep



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

awk '{print $8}' tes.txt
output : size=21341,

但是我只想grep号码"21341",你能给我关于如何grep号码的解决方案吗?

with sed

awk '{print $8}' tes.txt|sed 's/.*size=(.*),$/1/'
awk '{print $8}' tes.txt | grep -o '[0-9]*'
output: 21341

grep -o <regex>仅打印匹配行的匹配部分,每个此类部分都在单独的输出行上。查看更多详细信息。

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

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

awk '{print $8}' tes.txt | cut -d= -f2
awk '{split ($8, s, "="); print s[2]}' tes.txt
output: 21341
您可以使用

awk中的函数sub来执行此操作。

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

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

这是一个 grep 解决方案:

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

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

相关内容

  • 没有找到相关文章

最新更新