ファイルのすべての文の最初の文字を大文字にし、他の大文字を小文字に変換して(存在する場合)、変更したテキストを同じ入力ファイルに書き換えるにはどうすればよいですか?
入力ファイル:
これは、最初のファイルであり、文字をテストするために使用されます。大文字を小さい文字に変換するために使用されます。
とsed
:
$ sed -r 's/(.*)/\L\1/;s/((^|\.)\s*.)/\U\1/g' file
This is the test file.It is used for testing a script.Which is used for converting capital letters to small letters.
# Save changes to file
$ sed -ri 's/(.*)/\L\1/;s/((^|\.)\s*.)/\U\1/g' file
Perlでtr サブルーチンを使用できます。
$ cat original-file.txt | perl -ne 'tr/A-Za-z/a-zA-Z/; print;' \
> new-file-with-toggled-case.txt
$ mv new-file-with-toggled-case.txt original-file.txt
このようなもの?
awk '{sub($0,tolower($0)); sub(/./, toupper(substr($0,1,1)))}1' RS=. ORS=. file
出力:
This is the test file.It is used for testing a script.Which is used for converting capital letters to small letters.
これは、で終わる文で機能します。、ただし感嘆符、疑問符などは除きます。