たとえば、次のような場合があるとします。
One, Two.
OnE, Two.
ONE, TWO.
すべての大文字の行を小文字に置き換えたいので、次のような結果を得ます。
One, Two.
OnE, Two.
one, two.
努力しています:
gsed '/[a-z]/!c\L&'
行と正確に一致しますが、L&に置き換えられます。
One, Two.
OnE, Two.
L&
どのように小文字に変換できますか?
Lの前にバックスラッシュを2〜3個試しましたが、出力にのみ表示されます。
より良いオプションがある場合は、awk、tr、または他のユーティリティを使用します。
また、バージョンが重要な場合:
gsed --version
gsed (GNU sed) 4.9
ベストアンサー1
POSIX awkを使用してください。
$ awk '!/[[:lower:]]/ { $0=tolower($0) } 1' file
One, Two.
OnE, Two.
one, two.