1. ホーム
  2. shell

[解決済み] タブを区切り記号として指定するカットコマンド【閉じた状態

2022-02-16 17:54:50

質問

デリミタがタブのファイルがあり、コマンドを使用したところ

cut -d \t file.txt  #or  "\t"  or  "\\t"

このようなメッセージが表示されます。

cut: バイト、文字、またはフィールドのリストを指定する必要があります。

詳しくは`cut --help'を試してみてください。

の使用方法 cut コマンドを使用してください。

解決方法は?

入力行を指定されたデリミタ(-d, -delimiter)で分割する。

タブで分割する場合は、-d オプションを省略します。

f (--fields) オプションを使用すると、関心のあるフィールドを指定することができます。

echo -e "a\tb\tc" |cut -f 1 # outputs "a"
echo -e "a\tb\tc" |cut -f 2 # outputs "b"
echo -e "a\tb\tc" |cut -f 3 # outputs "c"
echo -e "a\tb\tc" |cut -f 1,3 # outputs "a\tc"
echo -e "a\tb\tc\td\te" |cut -f 2-4 # outputs "b\tc\td"

また、出力のデリミタを指定したり (--output-delimiter) 、デリミタを含まない行を削除したり (-s/--only-delimited) することも可能です。

echo -e "a\tb\tc\td\te" |cut -f 2-4 --output-delimiter=":" # outputs b:c:d

入力ファイルの最初のフィールドに興味がある場合は、次のようにします。

cut -f 1 file.txt