回答:
入力にASCII文字のみが含まれる場合、次のように使用できますtr。
tr A-Z a-z < input
または(覚えやすくIMOを入力するのは簡単ですが、ASCIIラテン文字に限定されませんが、GNUを含む一部の実装trではまだシングルバイト文字に制限されているため、UTF-8ロケールではASCII文字に制限されています):
tr '[:upper:]' '[:lower:]' < input
使用する必要がある場合sed:
sed 's/.*/\L&/g' < input
(ここではGNU実装を想定しています)。
POSIX sedを使用すると、すべての音訳を指定する必要があり、変換する文字を選択できます。
sed 'y/AǼBCΓDEFGH.../aǽbcγdefgh.../' < input
でawk:
awk '{print tolower($0)}' < input
\LはGNU拡張機能であることに注意してください。
\Lこれまでのところ私にとってはうまくいきます。GNU拡張機能
sedUnixコマンドです。異なるシステムには、異なる動作と機能を持つ異なるバリアントがあります。ありがたいことに、最近では、すべてに共通する最小限の機能セットに頼ることができるように、最も適合する規格があります。\Lそれらの中にはなく、GNUによって導入されたsed(標準ex/の同じ演算子と一致するvi)他の実装では一般に利用できません。
trGNUのような一部の実装trは、マルチバイトロケールでは正しく動作しないことに注意してください(最近ではほとんどのecho STÉPHANE | tr '[:upper:]' '[:lower:]'場合、たとえば試してみてください)。GNUシステムでは、好むかもしれsed変異体またはawkさんをtolower()。
sed 's/.*/\L&/g' < input。\1一致する部分文字列への参照は、ワールトのように括弧で部分文字列を指定しない限り機能しません。ただし、&示されているように、試合全体を表すために使用する方が少しきれいです
vimを使用すると、非常に簡単です。
$ vim filename
gg0guGZZ
ファイルを開き、gg最初の行0、最初の列に移動します。を使用するguGと、ファイルの最後まですべての文字の大文字と小文字が区別されます。ZZ保存して終了します。
それはあなたがそれを投げるほぼすべてを処理する必要があります。数字を無視し、非ASCIIを処理します。
反対のことをしたい場合は、小文字を大文字に変えて、uアウトをスワップしてU:gg0gUGZZを設定します。
vim file1 file2 fileetcようなもの:bufdo gg0guG:w<CR>は、おそらく任意の数のファイルで機能します。ただし、テストしていません!
私ddはこれが好きです。
<<\IN LC_ALL=C 2<>/dev/null \
dd conv=lcase
hi
Jigar
GANDHI
jiga
IN
...取得...
hi
jigar
ghandi
jiga
LC_ALL=C任意のマルチバイト大文字が変換されないでしょうが-入力で任意のマルチバイトを保護することです。同じことが(GNU)に も当てはまりますtr-どちらのアプリも、C以外のロケールでは入力マングリングの傾向があります。iconvいずれかと組み合わせて包括的なソリューションを実現できます。
2>/dev/nullリダイレクト破棄ddのデフォルトのステータスレポート-とその標準エラー出力。それなしでddは、上記のようなジョブの完了に続き、処理されたバイト数などの情報を印刷します。
tr、大きなファイルを処理する場合よりもはるかに高速です、ありがとう!
Perl 5を使用することもできます。
perl -pe '$_=lc' temp
このオプション-pは、入力の各行に対して指定された式を1回実行し、結果、つまりの最終値を出力するようにperlに指示します$_。-eスクリプトを含むファイルではなく、プログラムが次の引数になることを示します。lc小文字に変換します。引数なしでは、で動作し$_ます。そして$_=、それを再び保存して、印刷されるようにします。
そのバリエーションは
perl -ne 'print lc' temp
使用-nは、最終的に印刷されないこと-pを除いて似てい$_ます。そのため、その変数に保存する代わりに、明示的なprintステートメントを含めています。
sedとは対照的なPerlの利点の1つは、GNU拡張機能が必要ないことです。非GNU環境と互換性がなければならないプロジェクトがありますが、Perl asa依存関係も既にあります。に比べてtr、Perl lcをロケールに合わせて簡単に作成できる可能性があります。詳細については、perllocalemanページを参照してください。
MvGの答えに加えて、Perl 6も使用できます。
perl6 -pe .=lc temp
ここで、$ _は暗黙的であり、シェルによる展開から保護するために単一引用符は必要ありません($ _は特別なBashパラメーターです。https://www.gnu.org/software/bash/manual/を参照してくださいhtml_node / Special-Parameters.html)