【Linux】trコマンドの使い方!小文字を大文字に変換する方法

【Linux】trコマンドの使い方!小文字を大文字に変換する方法

この記事からわかること

  • Linuxtrコマンドとは?
  • 小文字から大文字変換する方法
  • 特定の文字列削除したり整形するには?

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

trコマンドとは

Linuxのtrコマンドは標準入力から受け取った文字列を変換したり、削除したりと整形して出力できるコマンドです。標準入力とは通常、引数で渡せる文字列などのことをさしています。>(リダイレクト)|(パイプ)を使えば標準入力をファイルの中身とすることも可能です。詳細は以下の記事を参考にしてください。

trコマンドでできること

trコマンドのフォーマット

$ tr [オプション] [string1] [string2]

trコマンドのオプションやクラス

trコマンドの引数にはクラスを指定することも可能です。クラスを使えばあらかじめ定義された型の文字列を簡単に指定することができます。

オプション 役割
-d string1と一致する文字列を削除
-s string1と一致する文字列が
連続してある場合1文字にする
クラス 役割
[:alpha:] アルファベット
[:alnum:] 英数字
[:lower:] 小文字
[:upper:] 大文字
[:dligit:] 数字
[:space:] スペース

実践的な使い方

trコマンドはファイルの中身に対してよく使われます。引数でのファイル指定はできないので、< (リダイレクト)| (パイプ)を使ってファイルを指定します。ファイルの中身を変更する訳ではなく、中身を参照したデータを整形して出力しているだけですので注意してください。

以下のような「sample.txt」があるとして動作させてみます。

$ cat sample.txt
abcdefg
123456
ABCDEFG
vvbbnnmm

任意の文字列を削除する

$ cat sample.txt | tr -d 'b'

acdefg
123456
ABCDEFG
vvnnmm

スペースを削除する

$ cat sample.txt | tr -d [:space:]
abcdefg123456ABCDEFGvvbbnnmm

連続した文字列を1文字にまとめる

$ cat sample.txt | tr -s 'b'

abcdefg
123456
ABCDEFG
vvbnnmm

小文字を大文字に変換する

$ cat sample.txt | tr [:lower:] [:upper:]

ABCDEFG
123456
ABCDEFG
VVBBNNMM

大文字を小文字に変換する

$ cat sample.txt | tr [:upper:] [:lower:] 

abcdefg
123456
abcdefg
vvbbnnmm

大文字を小文字に変換する(クラス不使用)

$ cat sample.txt | tr 'A-Z' 'a-z' 

abcdefg
123456
abcdefg
vvbbnnmm

trコマンド実行結果を元ファイルへ追記

$ cat sample.txt | tr [:upper:] [:lower:] >> sample.txt
abcdefg
123456
ABCDEFG
vvbbnnmm
abcdefg
123456
abcdefg
vvbbnnmm

trコマンド実行結果を元ファイルへ上書き

$ cat sample.txt | tr [:upper:] [:lower:] > sample.txt

追記(>>)はできましたがなぜか上書きは(>)できませんでした。

< (リダイレクト)を使用してファイルを指定する

$ tr [:upper:] [:lower:] < sample.txt

abcdefg
123456
abcdefg
vvbbnnmm

zshではクラスは使えない?

私はMac OSでzshを使ってtrコマンドでクラスを使用してみましたが以下のようなエラーが出てしまい実行できませんでした。

$ cat sample.txt | tr [:lower:] [:upper:]
zsh: no matches found: [:lower:]

起動シェルをbashに切り替えたところ実行できたのでtrコマンドのクラスはzshに対応していないのかもしれません。

$ cat sample.txt | tr [:lower:] [:upper:]
zsh: no matches found: [:lower:]

// bashに切り替える
$ bash 

The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.

// bashで実行
$ cat sample.txt | tr [:lower:] [:upper:]
// 正常に動作

$ exit // bashを終了

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index