Как использовать команду 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

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


person Hermandroid    schedule 12.03.2013    source источник


Ответы (4)


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

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

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

person William Pursell    schedule 12.03.2013

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

cut -d' ' -f2- infile > file

Дополнительные параметры см. на странице man cut.

Примечание: это не

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

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
person Thor    schedule 05.04.2013

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

cut -b 4- input-file

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

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

person Flare Cat    schedule 03.01.2015