Linux や Unix の cut コマンドは、ファイルの各行から一部を切り取って標準出力に出力するために使用されます。 cut コマンドを使用すると、バイト、文字、フィールド (区切り文字) などの単位で文字列の行からコンテンツの一部を抽出できます。 この記事では、いくつかの例を通して cut コマンドの使い方について学びます。これらの使用方法は、日常業務でも非常によく使用されます。 カットコマンドと構文 cut コマンドの基本的な構文は次のとおりです。
まず、cut のオプションをいくつか見てみましょう。cut コマンドは、実行するオプションとともに指定する必要があります。 説明のために、 $ 猫コンテンツ.txt Ubuntu Linux マイクロソフトウィンドウズ OSX エルキャピタン ユニックス フリーBSD 区切り文字の指定方法 最もよく使用されるオプションは たとえば、この例では、/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 選択した出力を完了する方法 選択した出力フィールドを完了する(つまり、選択を解除する)には、 次の例では、/etc/passwd ファイル内の /bin/bash を含む行の 2 番目のフィールドを除くすべてのフィールドを出力します。 $ grep "/bin/bash" /etc/passwd | cut -d':' --complement -f2 ルート:0:0:ルート:/ルート:/bin/bash 出力区切り文字の指定方法 出力区切り文字を指定するには まず、次の例を使用して、出力区切り文字が指定されていない場合の出力をテストしてみましょう。 $ カット -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 ここで、出力区切り文字をスペースとして指定する $ 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 つのフィールドを印刷してみましょう。 改行を示すために 出力は次のようになります。
コンテンツを文字として抽出する方法
次のように、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 ウブン マイクロ オキシ ユニックス 無料 バイト単位で抽出する方法
次の例では、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 をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Vueのvue-tree-colorコンポーネントの組織構造図の事例を詳しく解説
>>: MySQL インデックスクエリ最適化スキルを習得するための記事
序文コア機能のデフォルトの組み込みディレクティブ (v-model および v-show) に加えて...
1 はじめに優れたコーディング習慣は優れたプログラマーが備えるべき資質ですが、コードの品質を保証する...
日常の開発では、データベースの追加、削除、変更、クエリが一般的に行われるため、Mysql で NUL...
このキー属性の機能は何ですか?まずは公式の説明を見てみましょう。 kekey 属性は主に、新しいノー...
今日、null 値をテストしていたところ、小さな問題が見つかりました。ここに記録しました。以前にも遭...
1. MySQLをインストールする(1)ダウンロードしたMySQLの圧縮ファイルをMySQLをインス...
1. HTML タグを使用してテーブルを作成します。コードをコピーコードは次のとおりです。 <...
Docker Compose は、複雑なアプリケーションを定義および実行するための Docker ツ...
前回の記事では、MySQL ステートメントの実行時間をチェックする 2 つの方法を紹介しました。今日...
1. 文字セットを確認する1. MYSQLデータベースサーバーとデータベースの文字セットを確認する方...
序文コストを考慮して、ほとんどのウェブマスターは、多数の小規模なウェブサイト用にサーバーを個別に購入...
以下は、Shiji Tiancheng が Tencent KartRider ページを呼び出すため...
MySQL データベースに保存されるデータが徐々に増加すると、元のストレージ領域がいっぱいになり、M...
実際、多くの人が「テーブルは絶対に使用すべきではないと聞いたことがある」と言いますが、これは絶対に間...
IE には長い間問題がありました。誰もがテストを受けたとき、誰もが笑顔でしたが、それはただのニヤニヤ...