Linux trコマンドの使い方

Linux trコマンドの使い方

01. コマンドの概要

tr コマンドは、標準入力からの文字を置換、圧縮、削除できます。ある文字セットを別の文字セットに変換できます。美しい 1 行のコマンドを記述するためによく使用され、非常に強力です。

tr の完全な英語名は「transform」で、変換を意味します。 tr は標準入力からのみデータを読み取ることができるため、tr は入力ファイルを標準入力にリダイレクトするか、パイプからデータを読み取ります。

注: tr は sed コマンドに似ていますが、sed よりも単純なので、sed は tr と同じ機能を実現できます。

02. コマンド形式

用法:tr [選項]... SET1 [SET2]

03. 共通オプション

標準入力からの文字を置き換え、削減、および/または削除し、その結果を標準出力に書き込みます。

-c, -C, --complement 最初の補数 SET1
-d, --delete SET1に一致するコンテンツを置き換えずに削除します
-s, --squeeze-repeats SET1に一致する文字が入力シーケンス内に連続して存在する場合
繰り返し、置換時に一律1文字に短縮されます
-t, --truncate-set1 最初に SET1 を SET2 と同じ長さに切り捨てます
--help このヘルプメッセージを表示して終了する
--version バージョン情報を表示して終了する

SET は文字列のセットであり、通常は文字通りに理解できます。解析シーケンスは次のとおりです。

\NNN 8進数値NNN(1~3桁)の文字
\\ バックスラッシュ
\a 端末のビープ音が鳴る
\b バックスペース
\f ページ区切り
\n 改行
\r 入力
\t 水平タブ文字
\v 垂直タブ文字
文字 1 - 文字 2 文字 1 から文字 2 までのすべての文字を昇順で表示
[文字*] SET2に適用可能、指定された文字は設定1の長さと一致するまで連続してコピーされます
[文字*数値] 文字を指定された回数コピーします。数値が 0 で始まる場合は 8 進数として扱われます。
[:alnum:] すべての文字と数字
[:alpha:] すべての文字
[:blank:] すべての水平空白文字
[:cntrl:] すべての制御文字
[:digit:] すべての数字
[:graph:] スペースを除くすべての印刷可能な文字
[:lower:] すべて小文字
[:print:] スペースを含むすべての印刷可能な文字
[:punct:] すべての句読点
[:space:] すべての水平または垂直の空白文字
[:upper:] すべて大文字
[:xdigit:] すべての16進数
[=文字=] 指定された文字と等しいすべての文字

置換は、SET1 と SET2 の両方が指定され、-d オプションが指定されていない場合にのみ実行されます。
-t オプションは置換時にのみ使用できます。必要に応じて、SET2 は、元の最後の文字を末尾に追加して、SET1 と同じ長さにパディングされます。 SET2内の余分な文字は省略されます。 [:lower:]と[:upper:]のみ
文字を昇順に展開します。置換用の SET2 内のペアでは、大文字と小文字の変換を表します。 -s SET1 に基づいて、置換も削除も行わず、置換または拡張後に SET2 を使用して縮小します。

文字範囲

string1 または string2 の内容を指定するときは、単一​​の文字、文字列の範囲、またはリストのみを使用できます。

[az] azの文字で構成される文字列。

[AZ] AZの文字で構成される文字列。
[0-9] 数字の文字列。

\octal 有効な ASCII 文字に対応する 3 桁の 8 進数。
[O*n]は文字Oが指定された回数n回繰り返されることを意味します。したがって、[O*2]は文字列OOと一致します。

tr で特定の制御文字を表現するさまざまな方法 省略形の意味 オクタルモード

\a Ctrl-G 着信音\007
\b Ctrl-H バックスペース\010

\f Ctrl-L 改行\014
\n Ctrl-J 改行\012

\r Ctrl-M Enter\015
\t Ctrl-I タブキー\011

\v Ctrl-X \030

04. 参考例

4.1 入力文字を大文字から小文字に変換する

[deng@localhost ~]$ echo "HELLO ITCAST" | tr 'AZ' 'az'
こんにちは、itcast
[deng@localhost ~]$ 

「AZ」と「a-z」はどちらもセットです。セットはカスタマイズできます。たとえば、「ABD-}」、「bB.,」、「a-de-h」、「a-c0-9」はすべてセットです。セットには「\n」、「\t」などの ASCII 文字を使用できます。

4.2 表示される数字を削除する

[deng@localhost ~]$ echo "hello 1234 itcast 7890" | tr -d '0-9'
こんにちは、itcast 
[deng@localhost ~]$ 

4.3 入力テキストから補集合に含まれない文字をすべて削除する

[deng@localhost test]$ echo aabbcc..#dd2 */dk4 | tr -d -c '0-9 \n'
24
[deng@localhost テスト]$

補数には 0 ~ 9 の数字、スペース、改行文字 \n が含まれているため、これらは削除されず、その他の文字はすべて削除されます。

4.4 繰り返し文字を1文字として表現する

[deng@localhost test]$ echo "hellooooooooooo is heimamaaaaaaaaaaa" | tr -s 'oa'
こんにちは、ヘイママです
[deng@localhost テスト]$

4.5 置換演算を使用して + 演算を実行する

[deng@localhost test]$ echo 1 2 3 4 5 6 7 8 9 | xargs -n1 | echo $[ $(tr '\n' '+') 0 ]
45
[deng@localhost テスト]$

4.6 Windowsファイルによって発生する「^M」文字を削除する

[deng@localhost test]$ cat txt | tr -s '\r' '\n' > ファイル
[deng@localhost テスト]$

または

[deng@localhost test]$ cat txt | tr -d '\r' > ファイル

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

[deng@localhost test]$ echo "hello itcast" | tr '[:lower:]' '[:upper:]'
こんにちはITキャスト
[deng@localhost テスト]$ 

4.8 改行をタブに置き換える

[deng@localhost test]$ cat txt | tr '\n' '\t'
 1111 1111 2222 2222 5555 [deng@localhost テスト]$ 
[deng@localhost テスト]$

Linux trコマンドの使い方についてはこれで終了です。Linux trコマンドの詳細については、123WORDPRESS.COMの過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Linux コマンド sort、uniq、tr ツールの詳細な説明
  • Linux の traceroute コマンドの使用方法の詳細な説明
  • Linux コマンドにおける Ctrl+z、Ctrl+c、Ctrl+d の違いと使い方
  • Trash-Cli: Linux のコマンドラインごみ箱ツール
  • Linuxアプリケーションのデバッグのためのstraceコマンドの詳細な説明
  • Linuxでのtreeコマンドの使い方の詳細な説明
  • Linuxシェルtrコマンドの詳しい説明
  • Linuxのstringsコマンドの詳細な説明
  • 1日1シェルコマンド Linuxテキスト操作シリーズ - treeコマンド詳細説明
  • Linux trコマンドの使用

<<:  Vue3におけるキーの役割と動作原理についての簡単な説明

>>:  MySQL デュアルマシン ホットスタンバイ実装ソリューション [テスト可能]

推薦する

Linux で複数のファイルの名前を一度に変更する方法

序文日常業務では、すべての jpg ファイルを bnp に変更したり、名前の 1 を one に変更...

MySQL での実行計画の explain コマンド例の詳細な説明

序文explain コマンドは、クエリ オプティマイザーがクエリの実行を決定した方法を確認する主な方...

WindowsシステムでMySQLデータベースを完全にアンインストールして、MySQLを再インストールします

1. コントロールパネルで、MySQLのすべてのコンポーネントをアンインストールします。コントロール...

MySQLトリガーについて深く理解するための記事

目次1. SC テーブルを挿入または変更するときに、テスト スコアが 0 ~ 100 の範囲外の場合...

良い広告にはどのような特徴が必要ですか?

広告業は人間であることに似ていると言う人がいます。これは本当です。優れた広告には、優れた人間と同じよ...

mysql コマンドライン スクリプトの実行例

この記事では、例を使用して MySQL コマンドライン スクリプトの実行について説明します。ご参考ま...

Docker で Spring-boot プロジェクトをデプロイするためのサンプル コード

1. 基本的な Spring-boot クイックスタート1.1 クイックスタート pom.xml は...

Zabbix を使用して Oracle データベースを監視する方法の詳細な説明

1. 概要Zabbix は非常に強力で、最も広く使用されているオープンソースの監視ソフトウェアです。...

CentOS8 デプロイメント LNMP 環境で mysql8.0.29 をコンパイルしてインストールする方法の詳細なチュートリアル

1. 前提条件何度かインストールしているので、エラーについてはこれ以上説明しません。ちょっとわかりに...

React+Typescriptはカウントダウンフックメソッドを実装します

まず、setIntervalはフックとしてカプセル化されます👇 'react' から...

Tomcat8はcronologを使用してCatalina.Outログを分割します

背景tomcat によって生成された catalina.out ログ ファイルが分割されていない場合...

InnoDB ロック (レコード、ギャップ、Next-Key ロック) の詳細な説明

レコード ロックは、単一のインデックス レコードをロックします。レコード ロックは常にインデックスを...

SSDストレージを有効にしたMySQLインスタンスの詳細な説明

SSDストレージを有効にしたMySQLインスタンスの詳細な説明特に OS と MySQL が同じディ...

Vue で @person 関数を実装する方法

この記事ではvueを使用し、マウスクリックイベントといくつかの小さなページの最適化を追加します。 基...

js での遅延読み込みとプリロードの具体的な使用法

遅延読み込み(レイジー読み込み)とプリロードは、Web 最適化によく使用される手段です。 。 1. ...