1

我正在尝试从包含某些标签的文件中提取数据/url(在本例中为 someurl ),即。

xyz>someurl>xyz

我不介意使用awksed

4

3 回答 3

8

我认为最好,最简单的方法是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并打印第二个。

于 2013-05-29T13:02:29.043 回答
0

如果您的grep支持P选项,那么您可以使用前瞻和后瞻正则表达式来识别url.

$ echo "xyz>someurl>xyz" | grep -oP '(?<=xyz>).*(?=>xyz)'
someurl

这只是一个让您入门的示例,而不是最终答案。

于 2013-05-29T13:32:23.390 回答
0

grep 是为了提取东西而生的:

kent$  echo "xyz>someurl>xyz"|grep -Po '>\K[^>]*(?=>)'
someurl

你当然可以用炸弹杀死一只苍蝇:

kent$  echo "xyz>someurl>xyz"|awk -F\> '$0=$2'
someurl
于 2013-05-29T13:28:14.743 回答