Удаление первого столбца с энергией

У меня есть текстовый файл.

number 1_1 \t number1_2 \t etc
number 2_1 \t number2_2 \t etc

Я хочу удалить первый столбец этого файла (соответствующий number1_1, number2_1 и т.д., т.е. числа перед первой вкладкой для каждой строки). Я читал это сообщение, которое предлагает решение удалить первый столбец (см. ответ Peter). Однако это не работает на меня, поскольку числа имеют различные размеры, и я не могу повторить операцию для удаления первого столбца. Как я могу сделать затем?

7
задан 23 May 2017 в 05:39

5 ответов

Это должно удалить все символы прежде и включая 1-ю вкладку на любой строке:

:%s/^[^\t]*\t//

Командная строка cut:

cut -f 2- {filename.txt} > {filenamenew.txt}

значения по умолчанию сокращения к вкладкам; если Вы хотите что-то еще как пространство, добавляют -d " ". -f поля для копирования. 2-средств все от (и включая) столбец 2.

6
ответ дан 23 November 2019 в 06:14

До awk,

awk -F"\t" '{print FS,$2}' file > newfile

Это сокращает первый столбец и печатает только остающуюся вкладку и второй столбец.

До sed,

sed -r 's/^([^\t]*)\t(.*)$/\t\2/g' file > newfile
4
ответ дан 23 November 2019 в 06:14

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

:%norm dW

для колонки, отделенной Счетом , это:

:%norm df Ctrl+V счет

, Таким образом, команда, которая удалила бы первую колонку из (оперативного) файла, может быть:

ex +"%norm df$(echo -e '\t')" -scwq file

<глоток>, Чтобы проверить продукцию прежде, чем спасти (пробный прогон), замените -scwq -sc'%p|q!'.

Или на основе предложение Криса, как:

ex -c':exe ":%norm df\<Tab>"' -sc'%p|q!' <(echo -e "a a\tb b\tc c")
<час>

, Кроме того, делают это в визуальном способе (начинаясь с верхнего левого):

  1. Входят в визуальный блок через Ctrl+v .
  2. Схватили конец и выбирают первую колонку, нажимая: G , E (или приспосабливаются вручную).
  3. Пресса d , чтобы удалить отобранный блок.
3
ответ дан 23 November 2019 в 06:14

:%s/[^\t]*\t//

На каждой строке (%), замените (s/ORIGINAL/REPLACEMENT/) первое вхождение “non-символов-табуляции ([^\t] в любом номере (*)) сопровождаемый вкладкой \t ” ничем. Можно ввести Вкладку вместо \t.

, Кроме того, можно соответствовать самой короткой последовательности символов (.\{-}) окончание на вкладке. .*\t соответствовал бы самому долгому соответствию для .*, таким образом, оно будет соответствовать всем кроме последнего столбца; .\{-} соответствия самое короткое соответствие, которое является первым столбцом.

:%s/.\{-}\t//

3
ответ дан 23 November 2019 в 06:14

Для удаления остающегося пространства перед вторым столбцом, я предлагаю:

:%norm df Ctrl+V вкладка x

0
ответ дан 23 November 2019 в 06:14

Другие вопросы по тегам:

Похожие вопросы: