改行文字として、キャリッジリターン ラインフィードが使用されているテキストファイルから、キャリッジリターンを除去するには、trコマンドが便利、……と昨日のブログ記事に書きました。
「trでキャリッジリターン除去」については、
⇒ こちらの記事をご覧ください。
trは、なかなか便利なコマンドです。なので、備忘のため、つまり将来の自分自身のために、使用上の注意点をいくつか記録しておきます。
こうした類の知識は、覚えているうちに記録しておかないと、頭の中からすっからか~んと消えてしまいます。
【1】 書式・構文
trコマンドの書式・構文は次のとおりです。
tr <置換前文字> <置換後文字>
$ echo abc | tr abc ABC
を実行すると、ABC と出力されます。
abc が ABC に置き換えられた結果です。
置換前文字と置換後文字とは、それぞれ1文字ずつ単独で、並び順どおりに対応しているため、通常は置換前と置換後の文字数は一致させます。つまり、「abc」というまとまった文字列が置換されるわけではありません。
置換前文字と置換後文字には、「-(ハイフン)」を利用することで、文字範囲を指定できます。
$ echo goosyun | tr a-z A-Z
を実行すると、GOOSYUN と出力されます。
小文字がすべて大文字に置換された結果です。
【2】 trでファイルを扱う
trコマンドでファイルを扱うには、「cat」コマンドでファイル内容を読み出した上でパイプで渡すか、入力リダイレクトを行って、ファイルから入力する必要があります。
catとパイプを使う: cat input.txt | tr a-z A-Z
リダイレクトを使う: tr a-z A-Z < input.txt
tr a-z A-Z ./input.txt などとして、trコマンドの引数として入力ファイル名を指定すると、エラーとなってしまいます。
【3】 主なオプション
trコマンドの主なオプションは次のとおりです。オプションを何も指定しないときは、単純な文字置換が行われます。
1 -d
文字を削除します。
$ echo goosyun | tr -d o
を実行すると、gsyun と出力されます。
2 -s
連続文字を1つにまとめます。
$ echo goosyun | tr -s o
を実行すると、gosyun と出力されます。
3 -c
一つ目の引数(置換前文字の箇所)に記述した文字以外の文字全てを、処理対象にします。
$ echo goosyun | tr -c -d gsyun'\n'を実行すると、gsyun と出力されます。
それでは、また次の記事で
■■■■ goosyun ■■■■