3

Я пытаюсь вырезать первый и второй столбцы из studata.txt и второй столбец из studata1.txt.

studata.txt:

1 a 10
2 b 20
3 c 30

studata1.txt:

i si
co oi
me zi

Вот мой файл bash:

cut -d -f -2 studata.txt >tmp1
cut -d -f 2- studata1.txt > tmp2
paste tmp1 tmp2 > c.txt
cat c.txt

Ошибка:

cut: the delimiter must be a single character

1 ответ1

6

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

cut -d \  -f -2 studata.txt > tmp1

NB Есть 2 пробела после \ . Первый экранируется и представляет аргумент для опции -d , а второй отделяет его от опции -f .

Вы также можете поместить его в одинарные кавычки:

cut -d ' ' -f -2 studata.txt > tmp1

или между двойными кавычками:

cut -d " " -f -2 studata.txt > tmp1

Объяснения доступны в разделе Цитирование руководства Bash:

Escape Character: Как убрать специальное значение из одного символа.

Одиночные кавычки: Как запретить всю интерпретацию последовательности символов.

Двойные кавычки: Как подавить большую часть интерпретации последовательности символов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .