我有一个返回类似以下内容的bash脚本:
/title
my_title
/year
2017
如何使用简单的剪切命令(或者可以编写脚本的东西)拉出年份(2017)?
我知道如果标题不存在,cut -d\ -f2
会起作用...那么如何跳过标题并仅抓住一年?
答案 0 :(得分:4)
$ sed -n '/\/year/{n;p;q}' infile
2017
这样做:
/\/year/ { # If the line matches "year"
n # Get next line
p # Print line
q # Quit: don't have to read the rest of the file
}
-n
确保没有其他内容被打印出来。
答案 1 :(得分:2)
如果4个数字年份显示在单独的行中,则可以使用awk:
awk 'p=="/year"{print; exit} {p=$0}' file
2017
答案 2 :(得分:2)
另一个awk
$ awk 'f{print;exit} /^\/year/{f=1}' file
2017
答案 3 :(得分:0)
如果输入完全如图所示,则切割根本不起作用,因为它一次只能在一行上工作。
您可以使用tail
获取最后一行:
tail -n 1
或第四行:
tail -n+4
或grep
+ tail
获取以下/year
行:
grep -A1 'year' | tail -n1
grep -A1
将在匹配的标志后面打印一行,然后用尾部提取。