2016-10-11 1 views
1

Ich möchte den letzten Buchstaben der Wörter, die mit bestimmten Buchstaben beginnen, groß schreiben.Verwenden Sie sed oder tr, um den letzten Buchstaben von Wörtern, die mit einem bestimmten Zeichen/Ausdruck beginnen, zu aktivieren

Beispiel: At The Movies-AT ThE Movies

Ich habe versucht ...

$ sed 's/\<[ABEXY][[:alpha:]]*\([[:alpha:]]\>\)/\U\1/g' file1 

Aber das ersetzt alle Worte, die ich mit einem Großbuchstaben ihrer letzten Brief

Auch versucht zu ändern versuche :

$ sed '/\<[ABEXY][[:alpha:]]*\([[:alpha:]]\>\)/ y/\1abcdefghijklmnopqrstuvwxyz/\1ABCDEFGHIJKLMNOPQRSTUVWXYZ/' file1 

Aber backcalling doesn arbeite nicht mit sed y Also ich habe nur alle Kappen.

+0

'tr' ist nicht der Befehl zu verwenden; Es bildet bedingungslos alle Vorkommen der Zeichen ab, die es zuordnen soll. –

+0

Vielen Dank für den Rat :) – Angelo

Antwort

2

Capture the Start des Wortes zu, und es in dem Ersatz:

sed 's/\<\([ABEXY][[:alpha:]]*\)\([[:alpha:]]\>\)/\1\U\2/g' file1 
+0

Danke, ich fühle mich jetzt sehr albern, etwas so einfach verpasst zu haben. – Angelo

Verwandte Themen