Подтвердить что ты не робот

Вырезать команду, чтобы указать вкладку в качестве разделителя

Есть файл, который разделитель является вкладкой, когда я использую команду

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

Я получаю это сообщение

cut: вы должны указать список байтов, символов или полей

Попробуйте `cut --help 'для получения дополнительной информации.

Как использовать команду cut?

4b9b3361

Ответ 1

Вырезание разбивает входные строки на заданном разделителе (-d, --delimiter).

Чтобы разделить по вкладкам, опустите параметр -d, так как разделение по вкладкам по умолчанию.

Используя опцию -f (--fields), вы можете указать поля, в которые вы interrested.

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-bounded)

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

Если вы перепробованы в первом поле вашего входного файла, просто выполните...

cut -f 1 file.txt

Ответ 2

Разделитель по умолчанию - '\ t', поэтому вам просто нужно выполнить:

cut -f <n> file.txt

Где <n> - номер столбца

Ответ 3

Вы можете попытаться поместить вкладку между кавычками, если вы сначала нажмете "v", затем клавишу ""

eg  cat > test.txt 
a    b     c
<ctrl d>

$ grep test.txt | cut -f 2 -d "<ctrl v> <presstab>"

вернет "b"