複数のtxtファイルがあり、これを小文字、アルファベット順に1行に1語ずつ出力したいと思います。tr
次のように、パイプラインで複数のコマンドを使用してこれを実行できます。
tr -d '[:punct:]' <doyle_sherlock_holmes.txt | tr '[:upper:]' '[:lower:]' | tr ' ' '\n'
1回のスキャンで完了できますか?これを行うためにCプログラムを書くこともできますがtr
、sed
またはを使ってawk
これを行う方法があるようですperl
。
ベストアンサー1
複数の翻訳を組み合わせることはできますが(ロケール関連セットが重複する複雑な場合を除き)、削除と翻訳を組み合わせることはできません。
<doyle_sherlock_holmes.txt tr -d '[:punct:]' | tr '[:upper:] ' '[:lower:]\n'
より複雑なツールの場合、2 回の呼び出しは 1 回の呼び出しtr
より高速になる可能性がありますが、これは入力サイズ、さまざまな文字の割合、ツールの実装tr
と競合するツール、オペレーティングシステム、コアの数などによって大きく異なります。