2016-10-11 24 views
1

我想大寫以某些字母開頭的單詞的最後一個單詞。使用sed或tr來大寫以指定字符/表達式開頭的單詞的最後一個字母

例子:At The MoviesAT ThE Movies

我想...

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

但這種替換所有我想用自己最後一個字母的大寫字母來改變的話

也試過:

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

但是反撥不能和sed y一起工作所以我剛剛獲得了全部大寫。

+0

'tr'是不使用的命令;它無條件地映射出它被告知映射的所有字符。 –

+0

謝謝你的建議:) – Angelo

回答

2

捕獲單詞開始過了,包括它在更換:

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

謝謝,我現在覺得非常愚蠢,錯過了這麼簡單的東西。 – Angelo

相關問題