2017-02-11 3 views
2

zu drucken Ich versuche, sed zu verwenden, um nur den letzten Teil der URL aus einer Liste von Daten zu drucken. Ich möchte es mit sed nicht awk verwenden.Ich versuche, einen Teil jeder Zeile in sed

Eingangsdaten ist wie folgt:

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 

Ich möchte nur den letzten Teil der URL wie folgt gedruckt (WILL THIS):

Benin 
Saint Barthelemy 
Bermuda 

ich mit so viel Mühe, das/und \ weil sie in der url existieren !!!

Mein Versuch so weit (tryng Sachen zu ersetzen ich mit nichts will nicht)

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

Auch muss ich Räume mit ersetzen _ aber ich kann die y-Befehl y/_// ich denke, ?

+0

Ich glaube, Sie $ statt^verwendet haben.^bedeutet der Anfang und $ bedeutet das Ende. Du kannst das '/' durch irgendein anderes Zeichen ersetzen, wie Cyrus gezeigt hat. Und Sie geben die sed-Befehle an, um beispielsweise Probleme mit Leerzeichen zu vermeiden. –

+1

Für diejenigen, die an awk interessiert sind: Verwenden Sie '/' als Trennzeichen, ersetzen Sie durch eine Regex in der letzten Spalte ('$ NF') alle' _' durch Leerzeichen und drucken Sie dann die letzte Spalte ('$ NF'):' awk - F/'{gsub (/ _ /, "", $ NF); print $ NF} 'Datei' – Cyrus

Antwort

2

Mit GNU sed:

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

oder ersetzen ersten s/// durch s|||| entkommen zu vermeiden:

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

Ausgang:

 
Benin 
Saint Barthelemy 
Bermuda 
+0

Also so hast du es gemacht, es hat mir immer wieder Probleme bereitet, da sed den Schrägstrich benutzt –

Verwandte Themen