我有以下文本文件:
文件:Test.txt
Number of Cars:
10
Number of Bikes:
20
Number of Cycles:
10
注意:现在我想从文件中获取20
下一行的自行车数量。
我的尝试:1
sed -n '/Number of Bikes:/{N;p;}' Test.txt
输出:
Number of Bikes:
20
我的尝试:2
awk '/Number of Bikes/{_=2}_&&_--' Test.txt
输出:
Number of Bikes:
20
预期输出:
20
答案 0 :(得分:2)
如果您只需要搜索自行车,您可以使用以下行格式并包含以下行,将其移至尾部并获取最后一行,并删除任何前导空格。
grep -A 1 "^Number of Bikes:$" file1|tail -1|sed -e 's/ *//'
答案 1 :(得分:1)
以下是使用awk的方法:
awk 'f && f-- { print $1 } /Number of Bikes:/ { f = 1 }' file
标题匹配时设置标志f
。打印下一行的第一个字段,因为这是f
为真的唯一行。 f--
表示所有后续行都会将f
设置为0。
在这种情况下,稍微好一点就是在打印一行后退出:
awk 'f { print $1; exit } /Number of Bikes:/ { f = 1 }' file