以前書いたtrコマンドで不要文字を抹殺したり小文字を大文字に置換したり。 - Bye Bye Mooreの続きです
複数行の改行を一個だけに絞る
$ printf "hoge\nhuga\n\npiyo\n" hoge huga piyo
複数の改行が入るとアレですよね。
sedで置換するのも良いですが、
ここはtrの-sオプションを使いましょう。
$ printf "hoge\nhuga\n\npiyo\n" | tr -s '\n' hoge huga piyo
まとめ置換が抜けるとどうなるのか
"tr a-z A-Z"は定番ですね。
これが仮に文字数が不足していた場合、
第一引数ならば以降無視、
$ echo {a..z} | tr a-f A-Z A B C D E F g h i j k l m n o p q r s t u v w x y z
第二引数なら、最後の文字で置換されます
$ echo {a..z} | tr a-z A-F A B C D E F F F F F F F F F F F F F F F F F F F F F $ echo {a..z} | tr a-z '*' * * * * * * * * * * * * * * * * * * * * * * * * * *
括弧系を纏めて置換
a-z A-Zが対応しているという事は、他の記号でも似た事が行けるわけです。
たとえば、括弧の種類を変える...とか。
$ echo [{a..z}] [a] [b] [c] [d] [e] [f] [g] [h] [i] [j] [k] [l] [m] [n] [o] [p] [q] [r] [s] [t] [u] [v] [w] [x] [y] [z] $ echo [{a..z}] | tr '[]' '<>' <a> <b> <c> <d> <e> <f> <g> <h> <i> <j> <k> <l> <m> <n> <o> <p> <q> <r> <s> <t> <u> <v> <w> <x> <y> <z>