Linux の cut コマンドの説明

Linux の cut コマンドの説明

Linux や Unix の cut コマンドは、ファイルの各行から一部を切り取って標準出力に出力するために使用されます。 cut コマンドを使用すると、バイト、文字、フィールド (区切り文字) などの単位で文字列の行からコンテンツの一部を抽出できます。

この記事では、いくつかの例を通して cut コマンドの使い方について学びます。これらの使用方法は、日常業務でも非常によく使用されます。

カットコマンドと構文

cut コマンドの基本的な構文は次のとおりです。

$ cut オプション... [ファイル]...

まず、cut のオプションをいくつか見てみましょう。cut コマンドは、実行するオプションとともに指定する必要があります。

-f : 指定されたフィールドを抽出します。cut コマンドは、デフォルトの区切り文字としてタブを使用します。

-d : タブはデフォルトの区切り文字です。このオプションを使用して独自の区切り文字を指定します。

-b : 指定されたバイトを抽出するか、範囲を指定します。

-c : 指定された文字を抽出します。指定された文字は、カンマで区切られた数字のリスト、またはハイフンで区切られた数字の範囲になります。

–complement : 選択した部分を補完します。つまり、選択範囲を反転します。

–output-delimiter : 出力時に使用される区切り文字を変更します。

--only-delimited : 区切り文字を含まない列を出力しません。

説明のために、 context.txtという名前の次のテキスト ファイルと/etc/passwdファイルを例に挙げます。

$ 猫コンテンツ.txt 
Ubuntu Linux
マイクロソフトウィンドウズ
OSX エルキャピタン
ユニックス
フリーBSD

区切り文字の指定方法

最もよく使用されるオプションは-d-fの組み合わせで、 -dで指定された区切り文字と-fでリストされたフィールドに基づいてコンテンツを抽出します。

たとえば、この例では、/etc/passwd ファイルの各行の最初のフィールドのみが印刷され、使用される区切り文字は次のとおりです:

$ カット -d':' -f1 /etc/passwd
根
ビン
デーモン
管理者
11/10 11:0 ...
同期
シャットダウン
停止する
郵便
オペレーター
ゲーム
アルヴィン
梁旭
...

次の例では、スペースを区切り文字として使用して、content.txt ファイルの最初のフィールドを出力します。

$ カット -d " " -f 1 コンテンツ.txt 
ウブントゥ
マイクロソフト
オキシ
ユニックス
フリーBSD

以下の例では、複数のフィールドを抽出します。ここでは、コロン (:) 区切り文字を使用して、ファイル /etc/passwd 内の文字列 /bin/bash を含む行から最初のフィールドと 6 番目のフィールドを抽出します。

$ grep "/bin/bash" /etc/passwd | cut -d':' -f1,6
ルート:/ルート
アルビン:/home/アルビン

フィールドの範囲を表示するには、次に示すように、開始フィールドと終了フィールドをハイフン (-) で区切って指定します。

$ grep "/bin/bash" /etc/passwd | cut -d':' -f1-4,6,7
ルート:x:0:0:/root:/bin/bash
アルビン:x:1000:1000:/home/アルビン:/bin/bash

選択した出力を完了する方法

選択した出力フィールドを完了する(つまり、選択を解除する)には、 --complementオプションを使用します。このオプションは、指定されたフィールドを除くすべてのフィールドを出力します。

次の例では、/etc/passwd ファイル内の /bin/bash を含む行の 2 番目のフィールドを除くすべてのフィールドを出力します。

$ grep "/bin/bash" /etc/passwd | cut -d':' --complement -f2
ルート:0:0:ルート:/ルート:/bin/bash

出力区切り文字の指定方法

出力区切り文字を指定するには--output-delimiterを使用します。入力区切り文字は-dで指定され、出力区切り文字はデフォルトで入力区切り文字と同じになります。

まず、次の例を使用して、出力区切り文字が指定されていない場合の出力をテストしてみましょう。

$ カット -d: -f1,7 /etc/passwd | ソート | ユニーク -u
_apt:/usr/sbin/nologin
バックアップ:/usr/sbin/nologin
bin:/usr/sbin/nologin
デーモン:/usr/sbin/nologin
dnsmasq:/usr/sbin/nologin
ゲーム:/usr/sbin/nologin
ブヨ:/usr/sbin/nologin
irc:/usr/sbin/nologin
ランドスケープ:/usr/sbin/nologin
リスト:/usr/sbin/nologin
lp:/usr/sbin/nologin
lxd:/bin/false

ここで、出力区切り文字をスペースとして指定する--output-delimiterオプションを追加します。

$ cut -d: -f1,7 --output-delimiter ' ' /etc/passwd | sort | uniq -u
_apt /usr/sbin/nologin
/usr/sbin/nologin をバックアップする
bin /usr/sbin/nologin
デーモン /usr/sbin/nologin
dnsmasq /usr/sbin/nologin
ゲーム /usr/sbin/nologin
ブヨ /usr/sbin/nologin
irc /usr/sbin/nologin
ランドスケープ /usr/sbin/nologin
/usr/sbin/nologin をリストする
lp /usr/sbin/nologin
lxd /bin/false

別の例をテストして、セパレーターを使用して 1 行に 1 つのフィールドを印刷してみましょう。

改行を示すために--output-delimiter $'\n'として指定します。

出力は次のようになります。

$ grep root /etc/passwd | cut -d':' -f1,6,7 --output-delimiter=$'\n'

/根
バイナリ
オペレーター
/根
/sbin/ノーログイン

コンテンツを文字として抽出する方法

-cオプションを使用すると、文字の位置に基づいて抽出できます。スペースとTabも文字として扱われることに注意してください。

次のように、context.txt ファイルの各行の最初の文字を出力します。

$ カット -c 1 コンテンツ.txt
あなた
ま
お
あなた
ふ

以下は、context.txt ファイルの各行の最初の 7 文字を示しています。

$ カット -c 1-7 コンテンツ.txt
ウブントゥ
マイクロソ
XOt
ユニックス
フリーBSD

開始位置または終了位置のみを指定してもう一度テストしてみましょう。

以下は最後から 2 番目の文字を抽出します。

$ カット -c2- コンテンツ.txt
Ubuntu Linux
マイクロソフトウィンドウズ
sXエルキャピタン
ニックス
リーBSD

最初の文字から 4 番目の文字を抽出します。

カット -c-4 content.txt
ウブン
マイクロ
オキシ
ユニックス
無料

バイト単位で抽出する方法

-bオプションを使用して、バイト位置を指定したり、指定した各位置をコンマで区切ったり、 -を使用して範囲を指定したりして、行の一部を選択します。

次の例では、content.txt ファイルの各行の 1 番目、2 番目、3 番目のバイトを抽出します。

$ カット -b 1,2,3 コンテンツ.txt 
ウブ
マイク
オキシ
ユニ
フリー

次のコマンドを使用して範囲を一覧表示することもできます。

$ カット -b 1-3,5-7 コンテンツ.txt 
ウブツ 
ミコソ
翻訳 
ユニ
フリーBSD

いくつかの実例

cut は、他の Linux または Unix コマンドと組み合わせて使用​​されることが多い便利なコマンドです。

たとえば、ps コマンドから USER、PID、COMMAND を抽出する場合は、次のようにします。

ps -L un | tr -s " " | cut -d " " -f 2,3,14-
ユーザーPIDコマンド
0 676 /sbin/agetty -o -p --\u --keep-baud 115200,38400,9600 ttyS0 vt220
0 681 /sbin/agetty -o -p --\u --noclear tty1 linux
0 23174 -バッシュ
0 26737 ps -L un
0 26738 tr -s
0 26739 カット -d -f 2,3,14-

メモリの合計値、使用値、空き値を抽出し、ファイルに保存する別の例をテストしてみましょう。

$ free -m | tr -s ' ' | sed '/^Mem/!d' | cut -d" " -f2-4 >> memory.txt
$ 猫メモリ.txt
985 86 234

要約する

cut コマンドは、パイプを介して他の多くの Linux または Unix コマンドに接続できます。追加のテキスト処理のために、1 つ以上のフィルターをパイプで渡すことができます。

cut コマンドの制限の 1 つは、区切り文字として複数の文字を指定できないことです。複数のスペースは複数のフィールド区切り文字としてカウントされるため、目的の出力を得るには、cut コマンドの前に tr コマンドを使用する必要があります。

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

以下もご興味があるかもしれません:
  • Linux gzipコマンドの使用
  • Linux userdel コマンドの使用法
  • Linuxのdateコマンドの使用
  • Linuxコマンドをバックグラウンドで実行する方法
  • Linux statコマンドの使用
  • Linux lsコマンドの使用
  • Linux lnコマンドの使用
  • Linux bzip2 コマンドの使用

<<:  Vueのvue-tree-colorコンポーネントの組織構造図の事例を詳しく解説

>>:  MySQL インデックスクエリ最適化スキルを習得するための記事

推薦する

Vueは、選択した月に応じて日付に対応する曜日を動的に表示します。

私たち謙虚なプログラマーは、今でもこう歌わなければなりません。「あなたも私も、この世に生まれて、一日...

MySQLの自動増分IDについて知っておくべきこと

はじめに: MySQL を使用してテーブルを作成する場合、通常は自動インクリメント フィールド (A...

Javascript を使用して、スライドバー効果のあるスライドナビゲーション プラグインを開発します。

目次1. はじめに2. 使用方法3. 開発プロセス1. モデル例2. イベントとアニメーション4. ...

IE6 フォントを定義できません: 13px サイズは無効です。IE6 は自動的に大きいフォント ソリューションを表示します。

数日前、Web ページのモジュールを調整していたとき、ページのフォント サイズを 13px に設定し...

MySQLの基礎知識学習ノート

データベースを表示show databases;データベースを作成するDATABASE データベース...

ARM64アーキテクチャでmysql5.7.22をインストールするプロセス全体

MySQLダウンロードアドレス: https://obs.cn-north-4.myhuaweicl...

WindowsX Hyper-V ベースの CentOS システムをインストールする

現在、Linux を使用するほとんどの人は、クラウド サーバーを使用するか、Windows 上に仮想...

JavaScript配列重複排除の詳細な説明

目次1. アレイ重複排除2. 配列内のオブジェクトの重複排除3. 配列内の同じフィールドに基づいて別...

React NativeとiOSの相互作用の詳細な説明

目次前提条件RNはiOSに価値を渡す方法1: ネイティブに値を通常通り渡す方法2: コールバック関数...

MySQL のバックアップとリカバリの設計アイデア

背景まず、背景を説明します。ある制約により、当社の現在のバックアップ戦略では、1 日おきにフル バッ...

Vue要素ツリーコントロールに点線を追加する詳細な説明

目次1. 成果を達成する2. 実装コード3. その他の実装要約する1. 成果を達成する 2. 実装コ...

Vue プロジェクトのパッケージ化、マージ、圧縮により、Web ページの応答速度を最適化します。

目次序文1. リクエスト内容が大きすぎる解決: CDN の紹介リクエストリソースを圧縮する1. HT...

MySQL インデックスの知識の要約

MySQL インデックスの確立は、MySQL の効率的な操作にとって非常に重要です。インデックスによ...

Linux サービス管理の 2 つの方法、service と systemctl の詳細な説明

1.サービスコマンドサービスコマンドは実際には/etc/init.dディレクトリに移動し、関連プログ...

よく忘れられがちな CSS のヒント 26 選

これは、よく使われるけれども忘れられがちな CSS 実装方法のコレクションです。抜けや追加があれば、...