我正在尝试从包含某些标签的文件中提取数据/url(在本例中为 someurl ),即。
xyz>someurl>xyz
我不介意使用awk
或sed
。
我认为最好,最简单的方法是cut
:
$ echo "xyz>someurl>xyz" | cut -d'>' -f2
someurl
可以awk
这样做:
$ echo "xyz>someurl>xyz" | awk 'BEGIN { FS = ">" } ; { print $2 }'
someurl
withsed
有点棘手:
$ echo "xyz>someurl>xyz" | sed 's/\(.*\)>\(.*\)>\(.*\)/\2/g'
someurl
我们得到块something1<something2<something3
并打印第二个。
如果您的grep
支持P
选项,那么您可以使用前瞻和后瞻正则表达式来识别url
.
$ echo "xyz>someurl>xyz" | grep -oP '(?<=xyz>).*(?=>xyz)'
someurl
这只是一个让您入门的示例,而不是最终答案。
grep 是为了提取东西而生的:
kent$ echo "xyz>someurl>xyz"|grep -Po '>\K[^>]*(?=>)'
someurl
你当然可以用炸弹杀死一只苍蝇:
kent$ echo "xyz>someurl>xyz"|awk -F\> '$0=$2'
someurl