たとえば、このcut
コマンドは次のようにパラメーター-fを使用できます。man
このフィールドのみを選択してください。 -sオプションが指定されていない場合は、区切り文字を含まないすべての行も印刷します。
この場合、フィールドとは何ですか?
答え1
「フィールド」という用語はしばしば同じcut
ツールに関連付けられていますawk
。データをインポートして特定の文字を使用して区切ると、フィールドはデータ列のように見えます。これを行うためによく使用される文字はですSpace。
ただし、ほとんどのツールと同様に構成が可能です。たとえば、
- awk =
awk -F"," ...
- カンマで区切られます(例,:)。 - cut =
cut -d"," ...
- カンマで区切られます(例,:)。
はい
最初は、awk
空間を自動的に分割する方法を示しています。
$ echo "The rain in Spain." | awk '{print $1" "$4}'
The Spain.
これはcut
また、空間で分割を実行する方法を示しています。
$ echo "The rain in Spain." | cut -d" " -f1,4
The Spain.
cut
これには、列1と4を返すために使用する列データのCSVのリストがあります。
$ echo "col1,col2,col3,co4" | cut -d"," -f1,4
col1,co4
awkもこれを行うことができます:
$ echo "col1,col2,col3,co4" | awk -F"," '{print $1","$4}'
col1,co4
Awkはまた、さまざまな区切り文字を処理するのにもう少し堪能です。との両方を処理する方法は次のとおりですTabs。Spaces
$ echo -e "The\t rain\t\t in Spain." | awk '{print $1" "$4}'
The Spain.
カットのための-sスイッチはどうですか?
このスイッチの場合、スイッチで指定された区切り文字を含まない行はcut
印刷しないように指示します。-d
はい
このファイルがあるとしましょう。
$ cat sample.txt
This is a space string.
This is a space and tab string.
Thisstringcontainsneither.
メモ:上記の2番目の文字列にはスペースとタブがあります。
cut
スイッチがある場合とない場合の文字列を処理すると、次のようになります-s
。
$ cut -d" " -f1-6 sample.txt
This is a space string.
This is a space
Thisstringcontainsneither.
$ cut -d" " -f1-6 -s sample.txt
This is a space string.
This is a space
-s
2番目の例では、スイッチが区切り文字を含まない出力から文字列を省略していることがわかりますSpace。
答え2
POSIXによると、フィールドは次の文字で区切られた行の一部です。IFS
、これ」入力フィールド区切り記号(または内部フィールド区切り記号)。「デフォルトは空白、水平タブ、改行順です。Bashを使用すると、を実行してprintf '%q\n' "$IFS"
その値を表示できます。
答え3
そのユーティリティによって異なりますが、cut
「フィールド」の場合は、テキスト行の先頭から始まり、最初のタブまでのすべての内容が含まれます。 2番目のフィールドは、最初のタブの後の文字で始まり、次のタブまで続きます。 3番目、4番目...タブ間、行の始まりとタブ間、タブと行の終わりの間のすべてです。
「-d」オプションを使用してフィールド区切り文字を指定しない限り、最初cut -d: -f2
と2番目のコロン(':')文字の間のすべての内容を取得します。
他のユーティリティは定義が異なりますが、タブ文字は一般的です。フィールドが1つ以上の空白文字に基づいて区切られているため、厳しすぎる場合はawk
これが良い代替方法です。ほとんどの場合、これはより自然ですが、いくつかの構文を知る必要があります。次のように2番目のフィールドを印刷するには:cut
awk
awk
awk '{print $2}'
sort
私をだました人。現在のsort
マニュアルページには、フィールド区切り文字について「空白ではなく空白を空白に変換する」などの内容が記載されています。何らかの理由でsort
フィールドを正しく定義するには、何度も試してください。join
明らかに、「スペースで区切られた」フィールドを使用することはawk
基本的に行われます。
物語の教訓は気をつけて知らなければ実験してみるようにということです。
答え4
cut
コマンドを使用するには2つの主要なパラメーターが必要です。
-d:区切り文字を表します。
-f : 入力ファイルから切り取るフィールドを示します。
Ex. cut - d "|" - f1, 2 input_filename
ここでは、output
入力ファイルから2つのフィールドのみを削除する区切り文字「|」で区切ります。
ファイルに次の行がある場合
Alex|120000|Admin|1999
次に、2つのフィールドを切り取ります。
Alex|120000