コマンド出力から4番目の列のすべての文字列値を取得する最速の方法

コマンド出力から4番目の列のすべての文字列値を取得する最速の方法
Item Name        Data     Price            Comment 
shoes            Nike     20               Expensive item
pencil                                     Cheap price
bag                                        Most expensive 

目標は、2列と3列のタブ情報を考慮して4列の値を取得することです。

を使用するとawk '{print $4,$5}'予想される出力が得られますが、2行目でこれを行うとデータが正しくありません。

ベストアンサー1

データがタブで区切られていて、4番目の列が必要な場合は、次のcutオプションと組み合わせて使用​​してください-f 4

cut -f 4 file

このcutユーティリティは、タブ文字をデフォルトの区切り文字として使用します。

コマンドawkで使用されるデフォルトのフィールド区切り文字awkは、連続したスペース(タブまたはスペース)です。を使用して、-F '\t'入力フィールド区切り文字をawkタブに変更できます。awk上記のコマンドと同じことを行う方法を確認してください。cut

awk -F '\t' '{ print $4 }' file

Miller()などのわずかに「高度な」TSV認識ツールを使用すると、名前mlrで列のアドレスを指定することもできます。

mlr --tsv cut -f Comment file

これはデータをTSV(「Tab Separated Values」)に読み込み、Comment各入力レコード(行)のフィールドを抽出します。

(「TSV認識」は、引用されたフィールドを介して追加の助けなしにawk実行できないCSVファイルと同様に、そのフィールドにタブと改行を含めることができることを知っています。)

おすすめ記事