Linux コマンド sort、uniq、tr ツールの詳細な説明

Linux コマンド sort、uniq、tr ツールの詳細な説明

並べ替えツール

Linux の sort コマンドは、テキスト ファイルの内容を並べ替えるために使用されます。
Sort はテキスト ファイルの内容を行単位で並べ替えることができます。

共通オプションを並べ替える

b 各行の先頭のスペース文字は無視します。
-c ファイルが順番にソートされているかどうかを確認します。
-d ソート時に、英語の文字、数字、スペース文字を処理し、他の文字は無視します。
-f ソート時に小文字を大文字として扱います。
-i ソート時に、040 から 176 までの ASCII 文字を除くすべての文字を無視します。
-m は複数のソートされたファイルをマージします。
-M 最初の 3 文字を月の略語で並べ替えます。
-n 数値でソートします。
-u は一意であることを意味し、出力は重複排除されます。
-o<出力ファイル> は、ソートされた結果を指定されたファイルに保存します。
-r 逆順に並べ替えます。
-t<区切り文字> は、ソート時に使用されるフィールド区切り文字を指定します。
+<開始フィールド>-<終了フィールド> 開始フィールドから終了フィールドの前のフィールドまで、指定されたフィールドで並べ替えます。
–help ヘルプを表示します。
–version バージョン情報を表示する

ソートツールの例

デフォルト

デフォルトでは、並べ替えツールはアルファベット順に並べ替えます。

[root@1centos ~]# /etc/passwdをソートする
abrt:x:173:173::/etc/abrt:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD スタック:/var/run/avahi-daemon:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/ログインなし
chrony:x:992:987::/var/lib/chrony:/sbin/nologin
cockpit-ws:x:990:984:cockpit-ws:/:/sbin/nologin のユーザー
colord:x:997:994:colord:/var/lib/colord:/sbin/nologin のユーザー
デーモン:x:2:2:デーモン:/sbin:/sbin/nologin
dbus:x:81:81:システムメッセージバス:/:/sbin/nologin
dirsrv:x:988:982:user (389-ds-base:/usr/share/dirsrv:/sbin/nologin 用)
dovecot:x:97:97:Dovecot IMAP サーバー:/usr/libexec/dovecot:/sbin/nologin
dovenull:x:981:975:Dovecot の権限のないユーザー:/usr/libexec/dovecot:/sbin/nologin
ftp:x:14:50:FTPユーザー:/var/ftp:/sbin/nologin
ゲーム:x:12:100:ゲーム:/usr/ゲーム:/sbin/nologin

/etc/passwd を3番目の列で逆順に並べ替える

番号順に逆順に並べると次のようになります。

[root@1centos ~]# ソート -t: -rk 3 /etc/passwd
誰も:x:99:99:誰も:/:/sbin/nologin
ods:x:999:999:softhsm 秘密鍵の所有者:/var/lib/softhsm:/sbin/nologin
polkitd:x:998:997:polkitd:/:/sbin/nologin のユーザー
colord:x:997:994:colord:/var/lib/colord:/sbin/nologin のユーザー
unbound:x:996:993:Unbound DNS リゾルバ:/etc/unbound:/sbin/nologin
gluster:x:995:992:GlusterFSデーモン:/run/gluster:/sbin/nologin
libstoragemgmt:x:994:991:libstoragemgmt:/var/run/lsm:/sbin/nologin のデーモン アカウント
saslauth:x:993:76:Saslauthd ユーザー:/run/saslauthd:/sbin/nologin
chrony:x:992:987::/var/lib/chrony:/sbin/nologin
geoclue:x:991:985:geoclue のユーザー:/var/lib/geoclue:/sbin/nologin
cockpit-ws:x:990:984:cockpit-ws:/:/sbin/nologin のユーザー
sssd:x:989:983:sssd:/:/sbin/nologin のユーザー
dirsrv:x:988:982:user (389-ds-base:/usr/share/dirsrv:/sbin/nologin 用)
setroubleshoot:x:987:981::/var/lib/setroubleshoot:/sbin/nologin
saned:x:986:980:SANE スキャナデーモン ユーザー:/usr/share/sane:/sbin/nologin
gnome-initial-setup:x:985:979::/run/gnome-initial-setup/:/sbin/nologin
pcp:x:984:978:パフォーマンスコパイロット:/var/lib/pcp:/sbin/nologin
kdcproxy:x:983:977:IPA KDC プロキシ ユーザー:/:/sbin/nologin
ipaapi:x:982:976:IPAフレームワークユーザー:/:/sbin/nologin
dovenull:x:981:975:Dovecot の権限のないユーザー:/usr/libexec/dovecot:/sbin/nologin
dovecot:x:97:97:Dovecot IMAP サーバー:/usr/libexec/dovecot:/sbin/nologin
hsqldb:x:96:96::/var/lib/hsqldb:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
dbus:x:81:81:システムメッセージバス:/:/sbin/nologi
...省略...

/etc/passwdの3列目をソートし、px.txtに出力する

[root@1centos ~]# ソート -t: -k 3 /etc/passwd -o px.txt
[root@1centos ~]# cat px.txt 
ルート:x:0:0:root:/root:/bin/bash
xnftp:x:1007:1007::/home/xnftp:/sbin/nologin
vuser:x:1008:1008::/opt/vuser:/sbin/nologin
トム:x:1009:1009::/home/tom:/bin/bash
ジェリー:x:1010:1010::/home/ジェリー:/bin/bash
コンコン:x:1011:1011::/home/コンコン:/bin/bash
qemu:x:107:107:qemu ユーザー:/:/sbin/nologin
オペレータ:x:11:0:オペレータ:/root:/sbin/nologin
usbmuxd:x:113:113:usbmuxd ユーザー:/:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/ログインなし
ゲーム:x:12:100:ゲーム:/usr/ゲーム:/sbin/nologin
ftp:x:14:50:FTPユーザー:/var/ftp:/sbin/nologin

ユニークなツール

Linux の uniq コマンドは、テキスト ファイル内の重複する行と列をチェックして削除するために使用され、通常は sort コマンドと組み合わせて使用​​されます。

ユニークな共通オプション

uniq はテキスト ファイル内の重複した行と列をチェックできます。
-c または --count は、各列の横に行が出現する回数を表示します。
-d または --repeated は、繰り返される行と列のみを表示します。
-f <フィールド> または --skip-fields=<フィールド> 比較のために指定されたフィールドを無視します。
-s<文字位置> または --skip-chars=<文字位置> は、比較で指定された文字を無視します。
-u または --unique は、一度だけ表示される行のみを表示します。
-w<文字位置> または --check-chars=<文字位置> は比較する文字を指定します。
–help ヘルプを表示します。
–version バージョン情報を表示します。
[入力ファイル] ソートされたテキストファイルを指定します。指定されていない場合は、データは標準から読み取られます。
[出力ファイル] 出力ファイルを指定します。このオプションが指定されていない場合、コンテンツは標準出力デバイス(ディスプレイ端末)に表示されます。

uniq ツールの例

the.txtファイルを表示する

[root@1centos zhengzebiaodashi]# cat the.txt 
1番目 2番目 3番目
1番目 2番目 3番目
1番目 2番目 3番目
1番目 2番目 3番目

1番目 2番目 3番目
2番目 2番目 3番目
3番目 2番目 3番目 4番目 5番目
4こんにちは、こんにちは、世界
5 2 3 4 5 6 7 8

デフォルトの並べ替え

[root@1centos zhengzebiaodashi]# uniq the.txt
1番目 2番目 3番目

1番目 2番目 3番目
2番目 2番目 3番目
3番目 2番目 3番目 4番目 5番目
4こんにちは、こんにちは、世界
5 2 3 4 5 6 7 8

重複行を削除し、出現回数を表示する

[root@1centos zhengzebiaodashi]# uniq -c the.txt 
   4 1番目 2番目 3番目
   2 
   1 1番目 2番目 3番目
   1 2番目 2番目 3番目
   1 3 2 3 4 5
   1 4こんにちは、こんにちは、世界
   1 5 2 3 4 5 6 7 8

テストファイル内の重複行を見つける

[root@1centos zhengzebiaodashi]# uniq -d the.txt 
1番目 2番目 3番目

tr ツール

Tr は translate の略語で、翻訳や変換に使用されます。具体的には、入力コンテンツ (stdin) を変換したり削除したりできます。これは Linux パイプラインに不可欠なツールです。一般的な使用例をいくつか紹介します

tr 共通オプション

-c: 最初の文字セットに属さないすべての文字を置き換えます。
-d: 最初の文字セットに属するすべての文字を削除します。
-s: 連続する繰り返し文字を 1 つの文字として表します。
-t: まず、最初の文字セットの文字のうち、2番目の文字セットの文字より多い文字を削除します。

大文字と小文字にエコーする tr ツールの例

[root@1centos zhengzebiaodashi]# echo "jb51" |tr 'az' 'AZ'
JB51

出力内の繰り返し文字を置き換える

[root@1centos zhengzebiaodashi]# echo 'Thisssssss is cdsnnn' |tr -s 'sn'
これはcdsnです

文字列内の無音文字を削除する

[root@1centos zhengzebiaodashi]# echo 'this is csdn' |tr -d 'th'
csdnです

配列のソート

これらのツールを使用すると、配列を昇順または降順で簡単に並べ替えることができます。

#!/bin/bash
read -p "スペースで区切って配列を入力してください:" a
しゅず=($a)
echo "あなたの配列は: ${shuzu[*]}です"
echo "昇順の配列は次のとおりです:"
echo "$a" |tr ' ' '\n' |sort -n |tr '\n' ' '
エコー ''
echo "降順の配列は次のとおりです:"
echo "$a" |tr ' ' '\n' |sort -nr |tr '\n' ' '
エコー " "

使用

[root@1centos zhengzebiaodashi]# ソース paixu.sh 
スペースで区切って配列を入力してください: 8 1 5 9 7
配列は: 8 1 5 9 7
昇順の配列は次のとおりです。
1 5 7 8 9 
降順の配列は次のとおりです。
9 8 7 5 1

Linux コマンド sort、uniq、tr ツールの詳細な説明については、これで終わりです。Linux コマンド sort、uniq、tr ツールの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Linux 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コマンドの使用

<<:  JS がビデオ弾幕効果を実現

>>:  jsを使用して簡単なスネークゲームを書く

推薦する

mysql5.7.19 zip 詳細なインストールプロセスと構成

MySQL v5.7.19 正式版(32/64 ビットインストール版および zip 解凍版) 1. ...

フィボナッチ数列のJavaScript出力を実装する方法

目次トピック分析する基本的な解決策基本的な再帰再帰最適化要約するトピック私たちが答えなければならない...

表内のコンテンツオーバーフローのレイアウト方法について

コンテンツオーバーフローとは何ですか?実際、テキストが大量にある場合、コンテンツ領域がそれだけの長さ...

純粋な CSS でフォ​​ーム検証を実装するためのサンプル コード

日常業務において、フォームの検証は非常に一般的な設計要件です。ログイン ボックスや登録ボックス、アン...

Nginx の動的および静的分離実装ケースのコード分析

静的と動的の分離動的リクエストと静的リクエストはミドルウェアを通じて分離され、不要なリクエストの消費...

WeChatアプレットは写真の撮影とアルバムからの写真の選択を実現します

この記事では、WeChatアプレットで写真を撮ったり、アルバムから写真を選択したりするための具体的な...

MySQL のストアド プロシージャを使用して 100 万件のレコードをすばやく生成する方法

序文テストを行う際、大量のデータによる負荷に耐えるプロジェクトの能力をテストするために、通常はテスト...

JavaScript でローカル変数をグローバル変数に変換する方法

まず関数の自己呼び出しを知る必要がある関数の自己呼び出し - 自己呼び出し関数1 回限りの関数 - ...

Nodejs-cluster モジュールの知識ポイントの概要と使用例

面接官から「NodeJS で複数のプロセスを開始する方法を教えてください」と尋ねられることがあります...

Dockerコンテナを更新、パッケージ化、Alibaba Cloudにアップロードする方法

今回は、実行中のコンテナをイメージにパッケージ化して Alibaba Cloud にアップロードし、...

MySQL トリガー: トリガーの作成と使用

この記事では、例を使用して MySQL トリガーの作成と使用について説明します。ご参考までに、詳細は...

ウェブフォーム送信方法の詳細な概要

まず、フォームを送信するいくつかの方法を見てみましょう。 1. <!--一般的な送信ボタン--...

Web ページでの Unicode 文字の使用の概要 (&#、\u など)

初期のコンピュータでは ASCII 文字しか使用できませんでしたが、コンピュータのアプリケーションの...

VMware 仮想化 KVM のインストールと展開のチュートリアルの概要

仮想化1. 環境セントオス7.3 selinuxとファイアウォールを無効にする2. 仮想化環境の構成...

MySQLが大量のデータを処理する際にクエリ速度を最適化するいくつかの方法

実際に参加したプロジェクトでは、MySQL テーブルのデータ量が数百万に達すると、通常の SQL ク...