例如,如果我在名为 input.txt 的文件中有这些行
姓名:汤姆
年龄:12
名字:鲍勃
年龄:13
姓名:吉姆
年龄:14
姓名:乔
年龄:15
我想要 Jim 之后的第一个数字,即 14。谢谢 :)
最佳答案
对此有多种解决方案,使用的工具包括 sed
、awk
、cut
等。不过我更喜欢 perl
。
perl -0777 -nle 'print "$1\n" if /^name:\s*Jim\s*\nage:\s*([\d+.]+)/gm' file.txt
解释:
([\d.]+)
匹配年龄之后的任何数字:在 Jim 之后的下一行。-0777 是 Perl Slurp 模式,结合/m 用于多行匹配。
关于linux - 如何在bash中获取字符串后的第一个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40665255/