例付きLinux Cutコマンド

Linuxはcutbashの出力の各行からセクションを削除するためのコマンドを提供します。 cutコマンドは、ファイルまたは標準出力から列/テキストを抽出フィルタリングするメカニズムを提供します。 詳細な例を以下に示します。, 次のテキストファイルがありますfruits.txt

apple 1 good grape 5 bad banana 2 not bad
テキスト例
cut OPTION... ...

select column

cutコマンドは、すべての行の文字番号に従って指定された列を選択する機能を提供します。 ここでは、すべての行3文字を行ごとにコンソールに印刷します。 これは単一の文字のみを印刷します。,

$ cut -c3 fruits.txt
列を選択

文字範囲の列を選択

前の例では、端末に単一の文字を印刷しました。 以下のように文字範囲を指定することで、複数の文字をコンソールに出力することもできます。 文字インデックスは1から始まることがわかります。,

$ cut -c1-6 fruits.txt
文字範囲の列を選択

開始位置を使用して列を選択

カットのもう一つの便利な機能は、開始位置から終了までの

$ cut -c3- fruits.txt
開始位置を使用して列を選択

終了位置を使用して列を選択

開始位置から指定された位置までの範囲を印刷することができます。, これは、開始位置を1と仮定します

$ cut -c-3 fruits.txt
終了位置を使用して列を選択

単一のフィールドを選択

フィールドは、スペースのような特定の文字で区切られたテキストの一部です。タブ、ダブルコンマなど フィールド番号のテキストを選択できます。 既定では、フィールド区切り文字はtabです。 当社のテキストはすでにタブの扱い. この例では、3を選択します。 フィールド,

$ cut -f3 fruits.txt
単一のフィールドを選択

複数のフィールドを選択

文字で行うように、フィールド範囲を指定することもできます。 以下のコマンドでフルーツの名前と数を選択します。

$ cut -f1-2 fruits.txt
複数のフィールドを選択します

次の例では、範囲を使用しない複数のフィールドを一つずつ選択します。,

$ cut -f1,2,3 fruits.txt
複数のフィールドを選択します

最後のフィールド

最後のフィールドを印刷しています。 問題は、フィールド数がテキストに応じて変化する可能性があり、cutコマンドを使用してのみ最後のフィールドを指定できないことです。 次の例では、revコマンドを使用して最後のフィールドを取得します。,

$ cat fruits.txt | rev | cut -f1 | rev
最後のフィールド

選択フィールドに指定された文字が含まれています

デフォルトではcutdo文字に従って行を除外する機能はありませんが、grepを使用してこの機能を簡単に実装できます。, 含まれる行のみを選択しますapp

$ grep "app" fruits.txt | cut -f1-2
選択フィールドに指定された文字が含まれる

指定された文字を除くフィールドを選択します

前の例を逆にして、不要な行を削除することができます。 appを含む行を削除してから、1から2までの列を出力します。,

$ grep -v "app" fruits.txt | cut -f1-2
指定された文字を除くフィールドを選択します

区切り文字を指定します

区切り文字はフィールドを分割するために使用されます。 デフォルトでは、タブが区切り文字として使用されます。 ただし、以下のように-dオプションで指定できます。 この例に続いて、:を区切り文字として使用します。passwdファイルはそれを使用しているためです。 次に、フィールド1に存在するユーザー名のみを表示します。,

$ cut -d: -f1 /etc/passwd
区切り文字を指定します

フィールド以外の印刷

以前に見たように、フィールドは範囲としても印刷できます。 私達はまた分野の除外によって印刷してもいいです。 これはすべて印刷した。 この例に続いて、2を除くすべてのフィールドを印刷できます。

区切り文字の変更

テキストにはデフォルトで区切り文字があります。 状況によっては、コンソールへの印刷中に区切り文字を変更することができます。, --output-delimiter option can be used for this operation. The following example will change the tab delimiter to the comma.

$ cut -f1,2,3 --output-delimiter="," fruits.txt
Change Delimiter

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です