1

(文字列のサイズ (4、3、2、または 1) に関係なく) ドットで終わる文字列は大文字にする必要があります。ただし、ドット バストで終わらない文字列は小文字のままにします。

これらの 3 つのコマンドは必要なことを実行できましたが、1 文字の文字列はドットで終わり、2 文字の文字列はドットで終わりました。

sed -i -e "/<b>/ {s/\.\([^ ]\)/. \1/g}" file
sed -i -e "/<b>/ {s/\( [a-z]\.\)/\U\1/g}" file
sed -i -e "/<b>/ {s/\([a-z][^ ]\.\)/\u&/g}" file

私のストリームに続いて、これ (以下) を行うことはかなり理にかなっていると思いましたが、\n\ 機能せず、3 文字の文字列は次のようYEs.になり、4 文字の文字列は次のようになりました。HAHa.

sed -i -e "/<b>/ {s/\([a-z][^ ][^ ]\.\)/\u&/g}" file

誰か助けてくれませんか?:p (可能であれば、私が間違ったことを指摘してください)

4

1 に答える 1

1

これはあなたが望むことをするようです:

sed '/<b>/{s/[a-z]*\./\u&/}' input

あなたの場合、[a-z][^ ][^ ]\.3文字以上にのみ一致します。の存在を強制する代わりに、それらをオプションにするために[^ ]使用できます。*[a-z][^ ]*

于 2012-09-06T19:47:40.547 に答える