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 デュアルマシン ホットスタンバイ実装ソリューション [テスト可能]

推薦する

CSS3 で @media を使用して Web ページの適応を実現するためのサンプル コード

現在、コンピュータモニターの画面解像度はますます高くなる傾向にありますが、携帯電話などのモバイルデバ...

複数のフィールドを変更するためのMysql更新の構文の詳細な分析

MySQL でレコードを更新すると、構文は正しいのですが、レコードが更新されません...質問文実行前...

Tomcatディレクトリ構造の詳細な説明

目次ディレクトリ構造binディレクトリconfディレクトリlibディレクトリwebapps ディレク...

MySQL の NULL と空の文字列

最近、MySQL に触れました。昨日、テーブル構造情報を格納するための新しいテーブルを作成しました。...

Linux で履歴コマンドを表示および実行する方法

履歴コマンドを表示し、指定されたコマンドを実行します owen@owen:~/owen/softwa...

JavaScript の async と await のシンプルで詳細な学習

目次1. はじめに2. 詳しい説明2.1、非同期2.1.1. 関数はPromise以外のオブジェクト...

CSSで半透明の背景色を実現する2つの方法について簡単に説明します。

ページをレイアウトする際、ユーザーに異なる視覚効果を与えるために、div の背景色を半透明の状態に設...

postcss-pxtorem モバイル適応の実装

コマンドを実行してプラグインpostcss-pxtoremをインストールします npm インストール...

Javascript における非同期待機の詳細な理解

この記事では、async/await がすべての JavaScript 開発者にとって非同期プログラ...

モバイル Web アプリ上の画像が鮮明ではなく、非常にぼやけているのはなぜですか?

なぜ?最も簡単に言えば、ピクセルは均等ではないということです。携帯電話に表示される写真はとても繊細に...

CSS の ::before と ::after 疑似要素について知らないこと

CSS には、一般的には使用されない 2 つの疑似クラス、before と :after があります...

この記事はJavaScriptの変数とデータ型を理解するのに役立ちます

目次序文:親切なヒント:変数1. 免責事項2. 譲渡3. 2つの小さな文法上の詳細変数の命名規則なぜ...

jsは配列の平坦化を実装します

目次配列をフラット化する方法1.flat() の使用2. 正規表現を使用する3.reduce()+c...

MySQLデータベースに接続し、クエリ操作を実行するためのIDEAの完全なコード

1.まずMysqlリンク設定ページを書く パッケージ com.wretchant.fredis.me...

純粋な CSS で DIV サスペンションを実装するサンプル コード (固定位置)

DIV フローティング効果 (固定位置) は CSS のみで実装されており、IE8、360、Fir...