Linuxでは、ファイルのコンテンツをstdoutに出力する場合、最初に頭に浮かぶコマンドはcatです。ただし、ファイルの特定の部分を削除し、残りのコンテンツのみを印刷する必要がある場合があります。 カットと呼ばれるツールが存在することを知って喜ぶでしょう -これで可能になります。
この記事では、わかりやすい例を使用してこのツールについて説明します。ただし、その前に、この記事のすべての例がUbuntu18.04LTSマシンでテストされていることを言及する価値があります。
Linuxカットコマンド
Linuxのcutコマンドを使用すると、ユーザーはファイルの各行からセクションを削除できます。その構文は次のとおりです。
cut OPTION... [FILE]...
このユーティリティについてのマニュアルページの内容は次のとおりです。
Print selected parts of lines from each FILE to standard output.
With no FILE, or when FILE is -, read standard input.
そして、以下は、このユーティリティがどのように機能するかについての良いアイデアを与えるはずのいくつかのQ&Aスタイルの例です。
Q1。カットコマンドの使い方は?
cutコマンドは、ユーザーがバイト、文字、またはフィールドのリストを提供することを期待しています。 -bコマンドラインオプションを使用してバイトを指定できます。
たとえば、 file1.txtという名前のファイルがあるとします。 次の行が含まれています:
abcdefghijklmnopqrstuvwxyz
そして、最初の3バイトだけを表示したいとします。この場合、次のように-bオプションを使用できます。
cut file1.txt -b1,2,3
出力は次のようになります:
abc
範囲を指定することもできます:
cut file1.txt -b1-10
この場合に生成される出力は次のとおりです。
abcdefghij
次に、数字とともにハイフン(-)を使用して、その数字のバイトの後のすべてのバイトまたはその数字のバイトの前のすべてのバイトを表示するようにcutコマンドに指示することもできます。
たとえば、次のコマンドは、番号5のバイトを含むすべてのバイトとそれ以降のバイトが表示されることを確認します。
cut file1.txt -b5-
そして、次のコマンドは最初の5バイトを表示します:
cut file1.txt -b-5
Q2。キャラクターの扱い方は?
cutコマンドに渡すファイルに、サイズが1バイトを超える文字が含まれている場合があります。その場合は、-cオプションを使用して、表示または削除する文字をツールが正しく理解できるようにすることをお勧めします。
たとえば、♣は複数バイトを占める特殊文字です。したがって、これらの種類の文字を含むテキストストリームでcutコマンドを使用する場合は、-bの代わりに-cを使用することをお勧めします。機能的には、-cと-bの両方が同じように機能します。
Q3。カットは区切り文字でどのように機能しますか?
区切り文字を使用してcutコマンドを機能させることもできます。これには、-dコマンドラインオプションを使用できます。
たとえば、入力ファイルにコンマ区切りのフィールドが含まれているとします。
Howtoforge, HTF, howtoforge.com
FaqForge, FF, faqforge.com
そして、最初と3番目のエントリのみが必要な場合、これは次の方法で実行できます。
cut file1.txt -d, -f1,3
-fオプションを使用すると、表示するフィールドを選択できることに注意してください。
ご覧のとおり、タスクにファイルのコンテンツの選択的な出力が含まれる場合、cutコマンドを使用すると時間を大幅に節約できる可能性があります。ここで、このチュートリアルでは、このツールが提供するいくつかの基本的なコマンドラインオプションについて説明しました。詳細については、ツールのマニュアルページにアクセスしてください。