举例来说,如果我有一个名为input.txt在bash字符串后如何获得的第一个数字
名文件那些行:汤姆
年龄:12
名称:鲍勃
年龄:13
名:吉姆
年龄:14
名字:乔
年龄:15
我想第一个数字后,吉姆,这是14谢谢:)
举例来说,如果我有一个名为input.txt在bash字符串后如何获得的第一个数字
名文件那些行:汤姆
年龄:12
名称:鲍勃
年龄:13
名:吉姆
年龄:14
名字:乔
年龄:15
我想第一个数字后,吉姆,这是14谢谢:)
有多种解决方案,这一点,使用的工具包括sed
,awk
,cut
等,但我更喜欢perl
。
perl -0777 -nle 'print "$1\n" if /^name:\s*Jim\s*\nage:\s*([\d+.]+)/gm' file.txt
说明:
([\d.]+)
岁以后的任何数量的匹配:吉姆的下一行。
-0777是Perl Slurp模式与/ m结合用于多行匹配。
迷茫过输入...问号“体重”,其中所有值都在单后,原来的问题......这个现在已经改为“名称“和”年龄“。 – Adam
@Phoebe,每次编辑,你发布的文件结构都不一样,你想要做什么? – Rashmirathi
好的,现在输入就清楚了......你期待的输出......只有14岁......或者所有年龄段的12,13,14,15 ......为什么Jim特别呢? – Adam