2016-10-11 2 views
1

특정 문자로 시작하는 단어의 마지막 문자를 대문자로하고 싶습니다.sed 또는 tr을 사용하여 지정된 문자/표현식으로 시작하는 단어의 마지막 글자를 대문자로 사용하십시오.

예 : At The Movies 내가 노력

...

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

AT ThE Movies에하지만이

는 또한 시도 내가 그들의 마지막 문자의 대문자로 변경하려고 모든 단어를 대체 :

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

그러나 backcalling doesn sed y와 함께 일할 수 있도록 모든 대문자를 가져 왔습니다.

+0

'tr' 사용하는 명령이 아니다; 그것은 맵핑하라는 문자의 모든 어커런스를 무조건 매핑합니다. –

+0

조언 해 주셔서 감사합니다. – Angelo

답변

2

캡처 단어의 시작도 및 교체에 포함 :

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

고맙습니다. 지금은 너무 단순한 것을 놓친 것이 너무 어리 석습니다. – Angelo