试图在sed中打印每一行的一部分

时间:2017-02-11 09:59:24

标签: linux bash unix sed

我尝试使用sed从数据列表中仅打印网址的最后一部分。我希望它使用sed而不是awk。

输入数据如下:

Place,AF,http://en.wikipedia.org/wiki/Benin
Place Mat,NA,http://en.wikipedia.org/wiki/Saint_Barthelemy
Orion,NA,http://en.wikipedia.org/wiki/Bermuda

我想打印这样的URL的最后一部分(想要这个):

Benin
Saint Barthelemy
Bermuda

我和/和\有很多麻烦,因为它们存在于网址中!!!

我到目前为止的尝试(尝试替换我不想要的东西)

sed -r s/$.+wikipedia\.org\/// in.txt

另外我需要用_替换空格但我可以使用y命令y / _ / /我想?

1 个答案:

答案 0 :(得分:2)

使用GNU sed:

sed 's/.*\///;s/_/ /g' file

或将s///替换为s||||以避免转义:

sed 's|.*/||;s/_/ /g' file

输出:

Benin
Saint Barthelemy
Bermuda