我正在尝试从包含某些标签的文件中提取数据/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