2017-01-24 8 views
1

wie ein bestimmtes Muster aus einer Zeile in Linux mit Wildcard löschen?Wie lösche ich ein bestimmtes Muster aus einer Zeile in Linux mit Wildcard

test07cel20: ((host=test07db04.com,port=1832,community=public,(host=test07db02.com,port=1832,community=public),(host=172.186.100.63,port=162,community=public,type=ASR)) 

Ich möchte (host=172.186.100.63,port=162,community=public,type=ASR) aus der obigen Zeile löschen und 172.186.100.63, public wird von Fall zu Fall ändern (I Variablen bedeuten), so für einige Wildcard-Verfahren suchen.

Auch dieses Muster wird immer am Ende der Zeile vorhanden sein. In einigen Fällen wird type=ASRtype=asr sein. Also, wenn Sie eine Idee haben, alle oben genannten Szenarien zum Löschen des Musters host=*,port=162,community=*,type=ASR von einer Linie zu decken. Jede Hilfe wird sehr geschätzt.

erwartete Ausgabe ist

(host=test07db04.com,port=1832,community=public),(host=test07db02.com,port=1832,community=public) 
+2

Bearbeiten Sie Ihren Beitrag mit der entsprechenden Formatierung und fügen Sie eine erwartete Ausgabe hinzu. – Inian

+1

Bitte schauen Sie sich [editing-help] (http://stackoverflow.com/editing-help) an. – Cyrus

+0

Ihre Bearbeitung machte es unklar: es ist eine einzelne Zeile, sollte es als eine einzige Zeile angezeigt werden (als Code, mit vier Gedankenstrichen). –

Antwort

3

Ihre Lösung unnötig kompliziert. Versuchen Sie etwas wie folgt:

sed 's/,(host=[^(]*,port=162,[^(]*type=[Aa][Ss][Rr])//' 
+0

Fantastischer Michael.es hat funktioniert. Vielen Dank –

Verwandte Themen