2017-09-15 1 views
1

ich es geschafft, ein Muster unter Verwendung von Gnu grep 2.5.4 (OS ist Windows 7)Wie lösche Leerzeichen von Grep Suchergebnis?

Was grep kehrt wie sieht zu finden:

Word1       (1.22) 
Word2 (-111.999) 
Word3 (123) 

So zwischen Ende des Wortes und der Klammer '(' immer eine verschiedene Anzahl von Räumen gibt es Kann ich grep verwenden, um alle Räume oder alle Räume zu beseitigen, aber 1, so se Ergebnis aussehen wird.

Word1(1.22) 
Word2(-111.999) 
Word3(123) 

oder (besser)

Word1 (1.22) 
Word2 (-111.999) 
Word3 (123) 

(Leerzeichen innerhalb der Klammern() kann oder kann nicht entfernt werden, das ist egal) Benötige ich zusätzliche Werkzeuge wie sed oder andere? Ich bin auf der Suche nach einem Befehlszeilen-Tool, so dass keine Texteditoren Suche & ersetzen kann diesen Job tun.

Danke für jeden Hinweis!

Antwort

3

Sie können mit Rohr Ihr Ergebnis zu sed:

some_command | sed 's/[[:blank:]]*(/ (/' 

Word1 (1.22) 
Word2 (-111.999) 
Word3 (123) 

Statt grep können Sie prüfen auch awk mit:

awk '/Word/{sub(/[[:blank:]]*\(/, " (")} 1' file 
+0

@Sergeant: Hat diese Arbeit aus? – anubhava

1

einfach Rohr Ihr Ergebnis zu tr Befehl.

your_grep_command | tr -s ' ' 

tr -s ' ': Es wird mehrere Leerzeichen auf eins auf jeder Zeile zusammendrücken.

Ex:

$ echo "Word1       (1.22)" | tr -s ' ' 
Word1 (1.22) 
Verwandte Themen