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

推薦する

レスポンシブWebデザイン学習(3) - モバイルデバイスでのWebページのパフォーマンスを向上させる方法

序文モバイル デバイスでは、帯域幅とプロセッサ速度の制限により、Web ページのパフォーマンスに対す...

JavaScript でプライベート変数を宣言する 2 つの方法

序文JavaScript は、キーワードを使用してプライベート変数を宣言できる他の言語とは異なります...

Windows ベースの MySQL 8.0.12 のインストール

このチュートリアルは Windows システムにのみ適用されます。インストールしたがまだインストール...

mysql8.0.18 で winx64 をインストールするための詳細なチュートリアル (画像とテキスト付き)

MySQLデータベースをダウンロードするには、https://dev.mysql.com/down...

win10環境でDockerをインストールする実装

1. Docker公式サイトにアクセスするまず、Dockerの公式ウェブサイトにアクセスして、最新の...

最新のウェブフロントエンドフレームワーク10選を紹介(翻訳)

Web 開発の世界では、フレームワークは非常に一般的です。新しいフレームワークやテンプレートが毎日の...

CSS3+JS による虫眼鏡モードの完璧な実装の詳細説明

約 1 年前、私は「虫眼鏡効果を模倣するいくつかの方法の原理の分析」という記事を書きました。当時、自...

vue の v-for ディレクティブはリストのレンダリングを完了します

目次1. リストの走査2. Vueにおけるキーの役割3. リストフィルタリングこの記事では、Vue ...

ウェブサイトのホームページを作成するための基本原則

1. ウェブサイトのホームページのハイパーテキスト ドキュメントの構成構造は、ユーザーの注意をできる...

Linuxにおけるselinuxの基本設定チュートリアルの詳細な説明

selinux ( Security-Enhanced Linux)は、Linux カーネル モジュ...

Vueは視覚的なドラッグページエディタを実装します

目次ドラッグアンドドロップの実装ドラッグイベントドラッグして開始リリースゾーンでの移動境界処理、角度...

Windows10にMySQL5.6.35データベースを2つインストールする

次のように、Win10 での 2 つの MySQL5.6.35 データベースのインストールを記録しま...

画像ブラインド表示の効果を実現するための純粋な CSS の例

まず、完成した効果をお見せしましょう 主なアイデア: 実際、このブラインドは一種の手品を使用していま...

ページのスクロールバーを無効にするには、overflow: hiddenを使用します。

コードをコピーコードは次のとおりです。 html {オーバーフロー: 非表示; }体{オーバーフロー...