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を使用して簡単なスネークゲームを書く

推薦する

IE7でソースファイルを含むページを開くとページが空白になる問題の解決方法

質問:私のブログのエンコーディングは utf-8 です。ページを開くと空白になっていることもあります...

uni-appのスタイルの詳細な説明

目次uni-app のスタイル要約するuni-app のスタイルsassプラグインは公式ウェブサイト...

MySQL 5.7のワンクリックインストールとパスワードポリシーの変更方法

1.Mysqlスクリプトのワンクリックインストール [root@uat01 ~]# cat Inst...

複数の X 軸を使用して 7 日間の天気予報を実現するための Echarts サンプル コード

目次UIデザインEcharts の例の効果序文サンプルコード最終結果UIデザイン Echarts の...

Vue.jsはElement-uiを使用してナビゲーションメニューを実装します

この記事では、Element-uiを使用してvue.jsでナビゲーションメニューを実装するための具体...

ova ファイルを VMware にインポートする際の落とし穴の概要

問題の原因ご存知のとおり、すべてのネットワーク動作は対応するネットワークトラフィックを生成し、すべて...

MySQL アップグレードのベストプラクティス

MySQL 5.7 には、オンライン DDL、マルチソース レプリケーション、拡張された半同期、テー...

MySQL CHARとVARCHARの保存と読み取りの違い

導入保存時と読み取り時に CHAR 型と VARCHAR 型の違いを本当にご存知ですか?まずいくつか...

MySQL テーブル構造を Excel にエクスポートする方法

要件は次のとおりですテーブル構造、フィールドコメント情報、テーブル名などをエクスポートします。これは...

ウェブ標準学習リソースの素晴らしいコレクション

これらの仕様は、下位互換性のあるドキュメントを Web 上で公開し、できるだけ幅広いユーザーがアクセ...

MySQL 8.0 アップグレード体験

目次序文1. まず、既存のバージョンの MySQL を完全にアンインストールします。 2. deb ...

HTML スタイル タグと関連する CSS リファレンスの詳細な説明

HTML スタイル タグスタイルタグ - ドキュメント内でスタイルを宣言するときにこのタグを使用しま...

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

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

VMware で Nginx+KeepAlived クラスタ デュアルアクティブ アーキテクチャを展開する際の問題と解決策

序文負荷分散には nginx を使用します。アーキテクチャのフロントエンドまたは中間層として、トラフ...