2017-02-11 8 views
2

私はsedを使ってデータのリストからURLの最後の部分だけを印刷しようとしています。私はそれがawkではないsedを使用したい。sedの各行の一部を印刷しようとしています

入力データは、このようなものです:

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 

彼らはURLに存在するので、/と\!

これまでのところ(私は何もしたくないものを置き換えるためにtryng)

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

また、私は_とスペースを交換する必要があるが、私はYコマンドyを使用することができます/ _//私が思う私の試み? GNUで

+0

私はあなたが$の代わりに^を使用していると思います。 ^は開始を意味し、$は終了を意味します。 '/'をCyrusのような他の文字に置き換えることができます。そしてsedコマンドを引用すると、スペースなどの問題を避けることができます。 –

+1

awkに興味がある人は、区切り記号として '/'を使い、最後の列( '$ NF')のすべての' _'を空白で置き換え、最後の列( '$ NF')を出力します:' awk - F/'{gsub(/ _ /、 ""、$ NF); print $ NF} 'file' – Cyrus

答えて

2

はsedを:

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

やエスケープを避けるためにs||||することにより、第1 s///を交換する:

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

出力:

 
Benin 
Saint Barthelemy 
Bermuda 
+0

それはあなたがそれをした方法です、それはsedがスラッシュ –

関連する問題