cutコマンドは、Unixのcutユーティリティを使用して標準入力ストリームまたはデータファイルのセクションを切り取るために使用されます。これはGNUCoreutilsパッケージとBSDBase Systemの一部であるため、デフォルトですべてのLinuxおよびBSDシステムで使用できます。 Unixのcutコマンドを使用すると、バイト位置、文字、または「-」や「:」文字などの区切り文字で区切られたフィールドに基づいてセクションを切り取ることができます。このガイドでは、厳選された一連の例を使用して、Linuxのcutコマンドの実用的な紹介を提供します。直接体験するために、この投稿を読んで一緒に試してみてください。

UnixでのLinuxカットコマンドの例

私たちの専門家は最善を尽くして作成しましたこのガイドは、新しいLinuxユーザーにわかりやすいものです。さらに、ベテランユーザーにとっても便利なリファレンスポイントとして機能します。読者がコマンドを探索するときに、コマンドを試してみることをお勧めします。標準入力と参照ファイルの両方を使用して、これらのLinuxCutコマンドを示します。ここからファイルの内容をコピーして貼り付け、システムに作成できます。

デモンストレーション目的で使用される参照ファイル

test.txtというテキストファイルを使用しています。ホームディレクトリにあります。このファイルには、すべて4つの列を含む5つの行または行が含まれています。各行には、国の名前、首都、通貨、人口が含まれています。すべて区切り文字のコロンで区切られています。システムでこのファイルを作成し、以下の内容で埋めます。

Unixでのカットコマンドの構文

Linuxのcutコマンドの構文は次のとおりです。

cut OPTION... ...

入力ストリームからテキストを切り取るには、次のようにします。 echoコマンドを使用し、その出力をcutコマンドにパイプ(|)します。 catからのカットの入力を提供するために同じ方法を使用できます。

バイト位置に基づいてテキストをカット

cutユーティリティによって提供されるbオプションを使用すると、テキストのセクションをカットできます-バイト位置に基づいています。この目的のために、フラグ-bの後にバイト番号を付けてcutコマンドを使用する必要があります。

1。入力ストリームから1バイトのみを切り取る

$ echo "cutting text from input" | cut -b 1

上記のコマンドは、「入力からテキストを切り取る」という文字列をエコーし、入力としてパイプします。 1つだけに-bフラグが指定されているため、cutコマンドはこの文字列から最初のバイト(c)だけをカットします。

2。入力ストリームから特定のバイトをカットします

$ echo "cutting text from input" | cut -b 1,3

このコマンドは、文字列「入力からテキストを切り取る」の1バイト目と3バイト目のみを切り取り、「ct」をその文字列として表示します。出力。いくつかの異なるバイト位置で試してみてください。

3。入力ストリームからのバイト範囲のカット

$ echo "cutting text from input" | cut -b 1-12

上記のコマンド指定された文字列からバイト範囲1〜12を切り取り、「切り取りテキスト」を標準出力に出力します。文字列の占有範囲外のバイト範囲を指定すると、「cut:無効なバイトまたは文字範囲」を示すメッセージが表示されます。

4。テキストファイルから1バイトのみを切り取ります

$ cut -b 1 test.txt

このコマンドは、ファイルtest.txt内の5行のそれぞれの最初のバイトのみを表示します。これは、コマンド$ cat test.txt | cut -b1と同等です。

5。テキストファイルから特定のバイトを切り取る

$ cut -b 1,3 test.txt

上記のコマンドは、各行の最初と3番目のバイトのみを切り取ります。使用可能なバイトの範囲内にある限り、任意のバイト番号を指定できます。

6。テキストファイルからのバイト範囲の切り取り

$ cut -b 1-12 test.txt

このコマンドは、test.txtファイルの各行の最初の1バイトから12バイトを出力します。このコマンドが持つ機能が3番目のコマンドと類似していることに注意してください。

7。最初のコマンドを切り取りますアルファベット順の7バイト

$ cut -b 1-7 test.txt | sort

提供できます各行の最初の7バイトをアルファベット順に表示するためのsortコマンドへの入力としてのcutコマンドの出力。アルファベット順の並べ替えの場合、並べ替えコマンドにはオプションは必要ありません。

8。最初の7バイトを逆の順序で切り取ります

$ cut -b 1-7 test.txt | sort -r

この切り取りコマンドは、各行から最初の7バイトを切り取り、逆の順序で出力します。パイプを使用して、cutコマンドの出力がsortコマンドにどのように供給されているかを確認します。

9。 5バイト目から入力ストリームの終わりまでカット

$ echo "cutting text from input" | cut -b 5-

上記のcutコマンドは、テキストを5バイト目から文字列の終わりまでカットします。このコマンドは、指定されたバイト位置から入力ストリームの終わりまでカットする必要がある場合に便利です。末尾をオンにしたまま、bフラグの値を変更するだけです。

10。 5バイト目からファイルの終わりまでカット

$ cut -b 5- test.txt

このコマンドは、5行のテストすべてのカットを開始します。5バイト目の位置からtxtを送信し、各行が終了した後にのみ終了します。この操作では、末尾のハイフン(-)は必須です。

11。最初のバイトから指定されたバイト数をカットする

$ echo "cutting text from input" | cut -b -5

このコマンドは、入力文字列の最初の5バイトをカットします。 bフラグの値を置き換えるだけで、開始バイトから他のバイト位置にカットできます。前のハイフン(-)を追加することを忘れないでください。そうしないと、出力が期待どおりになりません。

12。ファイルから最初のバイトから指定された位置に切り取る

$ cut -b -5 test.txt

上記のコマンドは、テキストファイルから各行の最初の5バイトだけを切り取ります。このリストのコマンド9-12でハイフン(-)がどのように使用されているかに注目してください。

文字に基づいてテキストを切り取る

Unixのcutコマンドを使用すると、ユーザーは文字に基づいてテキストのセクションを切り取ることができます。大きなファイル処理タスクを処理するときは、これを頻繁に行う必要があります。それらを試してみて、文字ベースのカットとバイトベースのカットの類似点に注目してください。

13。入力ストリームから1文字だけを切り取ります

$ echo "cutting text from input" | cut -c 1

上記のコマンドは、標準入力から最初の文字を切り取り、端末に表示します。この場合は「c」です。これを明確に理解するには、文字列を別の文字列に変更してください。

14。入力ストリームから特定の文字を切り取る

$ echo "cutting text from input" | cut -c 1,3

このコマンドは、入力文字列の最初と3番目の文字だけを切り取って表示します。他の文字をカットしてみることができますが、文字列の文字数制限を超えないように注意してください。

15。入力ストリームから文字の範囲を切り取る

$ echo "cutting text from input" | cut -c 1-12

このコマンドの場合、「cut」は最初の位置から12番目の位置までの範囲の文字を切り取ります。結果は「テキストの切り取り」になります。このLinuxの切り取りコマンドと3番目のコマンドの類似点に注意してください。

16。テキストファイルから1文字だけ切り取ります

$ cut -c 1 test.txt

このコマンドは、ファイルtest.txtの5行のそれぞれの最初の文字のみを表示します。これはコマンド$ cat test.txt | cut -c 1と同等であり、同じ結果を提供します。バイトフラグを使用した場合と同じように。

17。テキストファイルから特定の文字を切り取ります

$ cut -c 7,10 test.txt

上記のコマンドは切り取りのみを行います各5行の7番目と10番目の文字。使用可能な文字の範囲内にある限り、任意の文字位置を指定できます。

18。テキストファイルの文字範囲をカット

このコマンドは、test.txtファイルの各行の最初の1文字から12文字を出力します。 Unixのcutコマンドは、文字の範囲とバイトの範囲を切り取るときに同じように動作します。

19。最初の5文字をアルファベット順にカットする

$ cut -c 1-5 test.txt | sort

cutコマンドの出力を、の最初の5バイトをカットするためのsortコマンドへの入力として提供できます。各行をアルファベット順に。アルファベット順に並べ替える場合、並べ替えコマンドにはオプションは必要ありません。

20。最初の5文字を逆の順序で切り取ります

$ cut -c 1-5 test.txt | sort -r

この切り取りコマンドは、各行から最初の5文字を切り取り、逆に並べ替えた後に表示します。パイプを使用して、cutコマンドの出力がsortコマンドにどのように供給されているかを確認します。

21。 5番目の文字から入力ストリームの最後までカット

$ echo "cutting text from input" | cut -c 5-

上記のカットコマンドは、5バイト目から文字列の最後までテキストをカットします。指定された文字位置から入力ストリームの終わりまでカットする必要がある場合に役立ちます。末尾をオンにしたまま、bの後に値を変更するだけです。

22。 5番目の文字からファイルの終わりまで切り取る

$ cut -c 5- test.txt

このコマンドは、test.txtファイルの5行のそれぞれを5番目の文字から切り取り始めます。位置し、すべての行の終わりに達した後に終了します。この種の操作では、末尾のハイフン(-)は必須です。

23。最初の位置から指定された量の文字を切り取ります

$ echo "cutting text from input" | cut -c -5

このコマンドは、入力の最初の5文字の位置のみを切り取ります。値-cを代入するだけで、開始文字から他の文字位置に切り取ることができます。前のハイフン(-)を追加することを忘れないでください。そうしないと、出力は期待したものと同じになりません。

24。ファイルから最初の文字から指定された位置に切り取る

$ cut -c -5 test.txt

Unixのこの切り取りコマンドは、ファイルテストから各行の最初の5文字を切り取ります。 txt。このリストのコマンド21〜24でハイフン(-)がどのように使用されているかに注意してください。

フィールドと区切り文字を使用して列からテキストを切り取る

cutコマンドを使用すると、ユーザーはテキストのセクションを非常に切り取ることができます。簡単に。このためには、カットのdフラグとfフラグの両方を使用する必要があります。 dフラグは区切り文字を表し、fはフィールドを表します。区切り文字は、テキストのセクションを他のセクションから分離する特殊文字です。一般的な例には、「-」、「:」、および「」(スペース)が含まれます。使用している参照ファイルには、区切り文字として「:」があります。

25。入力ストリームの最初のセクションを切り取ります

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 1

上記のcutコマンドは、入力ストリームからテキストの最初のセクション(この場合は「Let’s」)を切り取ります。区切り文字フラグ-dの値は単一のスペースであることに注意してください。コロンで区切られたテキストで試して、自分で何が起こるかを確認してください。

26。ファイルの最初のセクションを切り取ります

$ cut -d ":" -f 1 test.txt

このコマンドは、参照ファイル内の各行の最初の列を返し、5か国すべての名前を出力します。区切り記号に指定された値はコロンでした。これが、ファイルが列を区切る方法です。

27。入力ストリームの特定のセクションを切り取ります

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 1,2,3

ここでは、切り取りにのみ表示するように指示しました。指定された入力文字列の最初の3つのフィールド。フィールド位置のコンマ区切り配列を使用して実行されます。このコマンドの出力は「これをカットしましょう」になります。

28。の特定のセクションをカットします。ファイル

$ cut -d ":" -f 1,2,3 test.txt

この共同mmandも、前のコマンドと同じ種類の出力を提供します。ここでは、cutは標準入力ではなく、ファイルを処理しているだけです。それだけです。リストにある各国の名前、首都、通貨が表示されている必要があります。ただし、区切り文字(スペースとコロン)の違いに注意してください。

29。入力ストリームからフィールドの範囲を切り取る

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 1-5

上記のコマンドは、文字列の最初の5つのフィールドを切り取り、ターミナルに表示します。複数のフィールド間の区切り文字としてスペースを使用する場合は、アポストロフィが必要です。

30。ファイルからフィールドの範囲を切り取る

$ cut -d ":" -f 1-3 test.txt

この切り取りコマンドは、テキストファイルの最初の3列をそれぞれ切り取り、出力として表示します。前のコマンドの前のコマンドと同じ結果が表示されます。 –や:。

31のような文字には、アポストロフィは必須ではありません。特定のフィールドから各エントリを切り取り、アルファベット順にリストします

$ cut -d ":" -f 1 test.txt | awk "{print $1}" | sort

リスト内の5つの国の名前を、アルファベット順に見つける必要があるとします。これを行うために上記のコマンドを利用できます。アルファベット順に並べられた国が一覧表示されます。 fフラグの値を置き換えると、他のフィールドでも同様にこれを行うことができます。

32。フィールドから各エントリを切り取り、アルファベット順に並べ替える

$ cut -d ":" -f 1 test.txt | awk "{print $1}" | sort -r

このコマンドは、上記と同じ操作を実行しますが、エントリを逆に並べ替えるだけです。マナー、それだけです。ソートに渡された-rフラグにより、ここで出力が変更されます。

33。固定フィールドから入力ストリームの終わりまでカット

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 2-

このカットコマンドは、2番目のフィールドから文字列の終わりまでカットします。指定した位置から入力の終わりまでカットする必要がある場合に役立ちます。さまざまなフィールドから切り取る場合は、末尾をオンのままにして-fの値を変更できます。

34。固定フィールドからファイルの終わりまでカット

$ cut -d ":" -f 2- test.txt

このように使用すると、cutコマンドは指定されたフィールドからカットを開始し、最後まで進みます。各行の。この場合、リストにある5か国それぞれの首都、通貨、人口が出力されます。

35。最初の列から指定した数の列を切り取ります

$ echo "Let"s cut this input stream section by section" | cut -d " " -f -5

このコマンドは、指定された入力の最初の5つのフィールドのみを切り取ります。値-fを代入するだけで、開始列から他の列位置に切り取ることができます。ただし、前にハイフン(-)を追加する必要があります。そうしないと、出力が期待と一致しません。

36。ファイルの指定された列を最初の列から切り取る

$ cut -d ":" -f -2 test.txt

このLinuxの切り取りコマンドは、ファイルtest.txtを最初の列から切り取り始め、その後で終了します。 2番目のコマンドのカットが終了しました。したがって、このコマンドの出力には、各国の名前とそれぞれの首都が表示されます。

37。 CSVファイルの複数のフィールドを切り取る

$ cut -d "," -f 1,2 file.csv

大量のCSVドキュメントを操作する場合、cutコマンドは実行可能なツールであることがよくあります。たとえば、上記のコマンドは、file.csvというコンマ区切りのCSVファイルの最初の2列を切り取ります。

38。CSVファイルの特定のフィールドを切り取り、逆の順序で並べ替える

$ cut -d "," -f 1,3,5 file.csv | sort -r

上記のコマンドは、カンマ区切りのCSVの1列目、3列目、5列目を切り取ります。 file.csvという名前のファイルを作成し、出力を逆の順序で表示します。

エキスパート向けのその他のLinuxカットコマンド

カットコマンドは、適切に使用することで高度なファイル処理に使用できます。フィルタ、およびその他の堅牢なLinuxコマンド。以下では、長期的に役立つ可能性のあるいくつかのコマンドについて説明します。

39。 Cutコマンドを使用してpasswdファイルを検査する

$ cut -d ":" -f1 /etc/passwd

ほとんどのシステムの/ etc内に保存されているpasswdファイルには、システムとそのユーザーに関する非常に機密性の高い情報が含まれています。 cutコマンドを使用すると、このファイルをすばやく検査できます。区切り文字「:」は、このファイルの列がそれを使用して区切られているために使用されます。 -fの値を変更して、さまざまなフィールドを監視します。

40。特定のフィールドを切り取り、一意のエントリのみを表示する

$ cut -d ":" -f 3 test.txt | uniq -u

Linuxのこのcutコマンドは、ファイルtest.txtの3番目の列を切り取り、一意のエントリのみを表示します。したがって、このファイルの場合、出力にはユーロ、リラ、円の3つの通貨のみが含まれます。

41。指定されたものを除く入力ストリームのすべてのバイトをカット

$ echo "Let"s cut this input stream section by section" | cut -b 1,3,5,7 --complement

このcutコマンドは、-bに指定された文字を除く、指定された入力文字列のすべての文字をカットします。したがって、バイト位置の1番目、3番目、5番目、および7番目は出力から省略されます。

42。指定されたものを除くファイルのすべてのバイトを切り取る

$ cut -b 2,4,6 test.txt --complement

この方法で使用すると、cutコマンドはファイルtest.txtのすべてのバイトを切り取ります。コマンドで言及されているもの。したがって、出力には各行の2バイト目、4バイト目、および6バイト目は含まれません。

43。指定された文字を除く入力ストリームのすべての文字を切り取る

$ echo "Let"s cut this input stream section by section" | cut -c 1,3,5,7 --complement

このコマンドは、入力文字列の1番目、3番目、5番目、および7番目の文字を切り取りません。これら4つを除く他のすべての文字を切り取ります。

44。指定されたものを除くファイルのすべての文字を切り取る

$ cut -c 2,4,6 test.txt --complement

このコマンドの場合、出力には、test.txtファイルのすべての文字が含まれます。言及されました。そのため、2番目、4番目、6番目の文字は表示されません。

45。指定されたものを除くすべての入力セクションを切り取ります

$ echo "Let"s cut this input stream section by section" | cut -d " " -f 1,3,5 --complement

上記のコマンドは、「入力セクションをセクションごとに切り取り」という文字列を出力します。したがって、フィールドフラグの後に記載されているものを除いて、すべての入力セクションが表示されます。

46。指定されたものを除くファイルのすべての列を切り取る

$ cut -d ":" -f 2,3 test.txt --complement

このコマンドは、ファイルtest.txtの最初と最後の列のみを切り取ります。そのため、補完フラグを使用して大きな表形式のドキュメントを処理するときに、一部のフィールドの選択を簡単に解除できます。

47。入力のセクションを切り取り、文字ごとに反転します

$ echo "Let"s cut this input stream section by section" | rev | cut -d " " -f 1,3

上記のLinuxコマンドは、入力の最初と3番目のセクションを切り取り、文字ごとに反転します。 1つのコマンドの出力が他のコマンドへの入力としてどのように供給されているかに注意してください。

48。ファイル内の特定の列を切り取り、文字ごとに反転する

$ cut -d ":" -f 1,3 test.txt | rev

このコマンドは、ファイルtest.txtの指定されたフィールドのみを切り取り、結果を文字ごとに表示します逆の方法。

49。カットコマンドの出力区切り文字を変更する

$ echo "A,comma,separated,list,for,demonstration,purposes" | cut -d "," -f 1- --output-delimiter=" "

カットを使用すると、結果を表示するときに出力区切り文字を変更できます。上記のコマンドは、コンマ区切りのリストのすべてのセクションを切り取りますが、結果を表示するときにコンマをスペースに置き換えます。

50。タブ区切り文字を使用したCut + Sedコマンドの例

$ sed "s/:/\t/g" test.txt | cut -f 1-4

リストの最後のcutコマンドは、強力なsedユーティリティを使用して、ファイル内のコロンをタブに置き換えます。 。 \ tを–や;などの他の文字に置き換えることができます。選択した出力区切り文字に変更するため。

最後の考え

Unixのcutコマンドは、大きなファイルを頻繁に処理する必要があるユーザーに多くの利点をもたらすことができる多目的なツールです。この素晴らしいユーティリティに慣れるのに役立つ、Linuxのベスト50コマンドの概要を説明しました。それらを個別に試して、利用可能なさまざまなオプションに変更を加える必要があります。これは、カットコマンドのさまざまなバリエーションを詳細に理解するのに役立ちます。うまくいけば、私たちはあなたをできるだけ助けるという私たちの探求に成功しました。便利なLinuxコマンドに関する今後のガイドについては、私たちと一緒にいてください。

コメントを残す

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