1

RHEL 6.3 での

$ export LC_ALL=fr_FR.utf-8
$ sed 's/ \([a-zA-Zé]\)\([^ ]*\) /[\u\1\L\2\E] /g' <<< " hélène  NOËL  étienne "
 hélène  NOËL  étienne

$ export LC_ALL=C
$ sed 's/ \([a-zA-Zé]\)\([^ ]*\) /[\u\1\L\2\E] /g' <<< " hélène  NOËL  étienne "
[Hÿlÿne] [Noÿl] [ÿtienne]

$ sed --version
GNU sed version 4.2.1
[...]

は以下を出力できますか?

[Hélène] [Noël] [Étienne]
4

2 に答える 2

1

これでよろしいですか?

kent$  echo " hélène  NOËL  étienne "|sed -r 's/(\S)(\S+)/[\U\1\L\2]/g'
 [Hélène]  [Noël]  [Étienne] 

私の sed バージョンはあなたのものとは少し異なりますが、行もそこで実行する必要があると思います:

kent$  sed --version |head -1
sed (GNU sed) 4.2.2

私のロケール設定を追加しました。知りたいかもしれません:

kent$  echo $LANG
en_US.utf8

kent$  locale
LANG=en_US.utf8
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=
于 2013-09-26T15:58:35.110 に答える