2016-10-11 3 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 

しかしバックコーリングsed yと一緒に仕事をしています。

+0

'tr'が使用するコマンドではありません。マップされる文字のすべての出現を無条件にマップします。 –

+0

アドバイスありがとうございました:) – Angelo

答えて

2

することはあまりにも単語の先頭をキャプチャし、交換に含める:

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

ありがとう、私は今とてもシンプルなものを逃してしまったので、とても馬鹿に感じます。 – Angelo

関連する問題