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

推薦する

Centos7 システムでの python2 と python3 の共存

最初のステップは、Python のバージョン番号とインストール パスを確認することです。 上記のビュ...

MySQL最適化ツール(推奨)

序文今日 GitHub を閲覧していたところ、SQL を最適化および書き換えるための sora とい...

MySQL ジョイントテーブルクエリの簡単な例

MySql は結合テーブルクエリを使用しますが、初心者には理解しにくい場合があります。以下の記事では...

Web コンポーネントの内部イベント コールバックと問題点の分析

目次前面に書かれたWC とは何でしょうか?現在の欠陥1. コンポーネント内部イベントのコールバック2...

Linux (Ubuntu) での MySQL 5.6.28 のインストールと設定のチュートリアル

mysql5.6.28のインストールと設定方法1. 基本的なシステム情報を確認し、yumでインストー...

ウェブサイトのコンテンツが検索エンジンに含まれないようにする方法

通常、Web サイトを構築する目的は、検索エンジンにインデックス登録してもらい、プロモーションを拡大...

Linux CentOS 6.5 のアンインストール、tar、および MySQL のインストールチュートリアル

システム提供のMySQLをアンインストールする1. MySQLがシステムにインストールされているかど...

ubuntu15.10 での hadoop2.7.2 の詳細なインストールと設定

Linux での Hadoop インストール チュートリアルはインターネットや書籍に多数ありますが、...

MySQLでテーブルインデックスを構築する方法

目次複数の種類のフィルタリングをサポート複数の範囲のクエリを避ける並べ替えを最適化するインデックスの...

MySQL MGR 構築時の一般的な問題と解決策

目次01 よくある故障 1 02 よくある欠陥 2 03 よくある欠陥 3 04 よくある欠陥 4 ...

MySQL 8.0.16 圧縮パッケージのインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0.16圧縮パッケージのインストールと設定方法を参考までに紹介します。...

HTML サブタグと sup タグ

今日はあまり使わないHTMLタグ「subタグ」と「supタグ」を紹介します。定義と使用法: <...

MYSQLは継続サインイン機能を実装しており、サインイン後1日経過すると最初から開始します(SQL文)

1. テストテーブルを作成する テーブル `testsign` を作成します ( `userid`...

Vue ベースの要素ボタン権限実装ソリューション

背景要件: ERP システムに「ボタン権限制御」機能を追加する必要があり、権限の制御粒度をボタン レ...

Nginx 最適化サービスで Web ページ圧縮を実装する方法

リソースを節約するためにWebページの圧縮を設定する1.まず、設定を変更しましょう vim /usr...