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

Как использовать команду cut в bash для отображения всех столбцов, кроме указанных?

Мне нужно удалить столбец из текстового файла. Я думаю, что это можно сделать, используя инверсию команды cut. Я имею в виду, что-то вроде этого:

Если это мой файл:

01 Procedimiento_tal retiro aceptado
01 tx1
01 tx2
01 tx3
02 Procedimiento_tal retiro rechazado
02 tx1
02 tx2
02 tx3
03 Procedimiento_tal retiro aceptado
03 tx1
03 tx2
03 tx3

Что я могу сделать, чтобы удалить первый столбец с вырезом и получить следующий текст в bash?:

Procedimiento_tal retiro aceptado
tx1
tx2
tx3
Procedimiento_tal retiro rechazado
tx1
tx2
tx3
Procedimiento_tal retiro aceptado
tx1
tx2
tx3

Заранее спасибо

4b9b3361

Ответ 1

Использование cut:

cut -d ' ' -f 2- input-file

должен делать то, что вы хотите.

Ответ 2

Чтобы прочитать infile с помощью ' ' в качестве разделителя (-d) и поместите поля (-f) 2 дальше (2-) в file:

cut -d' ' -f2- infile > file

Подробнее см. man cut.

NB: Это не -специфический.

Ответ 3

GNU coreutils cut поддерживает флаг --complement. Поэтому, если вы используете эту версию разреза, вы можете сказать:

cut --complement -d' ' -f1 infile

Вывод:

Procedimiento_tal retiro aceptado
tx1
tx2
tx3
Procedimiento_tal retiro rechazado
tx1
tx2
tx3
Procedimiento_tal retiro aceptado
tx1
tx2
tx3

Ответ 4

Вот команда, которая работает, и это немного короче, чем у всех:

cut -b 4- input-file

-b обозначает байт и выбирает байты, которые будут вставлены на экран.

4- является частью -b, и это означает, что он выберет 4-й символ каждой строки последнему символу каждой строки. команда cut затем вставляет выделение на экран.