Как удалить второй столбец в Vim?

У меня есть файл с разделением табуляцией как:

name1   verb1   name2   verb2   etc...

Я хочу удалить второй столбец. Я пытался редактировать один из этих ответов, но быть не знакомым с sed и awk, Я не мог.

Кто-либо может помочь мне?

12
задан 13 April 2017 в 05:23

4 ответа

В энергии необходимо быть в состоянии использовать команду

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

(замена ВКЛАДКА сопровождаемый нулем или большим количеством случаев любого символа кроме ВКЛАДКИ ни с чем). Если Ваш файл имеет только два столбца, Вы могли бы использовать немного более простое :%s/\t.* или :%s/\t.*$, которые заменяют первую ВКЛАДКУ и любой продолжающие символы до конца строки.

10
ответ дан 23 November 2019 в 03:27

Принятый ответ намного более изящен, чем это (я upvoted это!), но если Вы не помните его, можно использовать vim визуальный блочный режим непосредственно. Открытая энергия и идет (нормальный режим) к первому углу столбца, как это:

enter image description here

Тип CTRL-V и Вы можете переместить курсор для выбора столбца, это на полпути:

enter image description here

Для движения в конце нажмите G:

enter image description here

блок кажется поврежденным, потому что мы находимся на последней строке, которая является пробелом; просто поднимитесь одна строка (со стрелкой вверх или k) для наблюдения его снова...:

enter image description here

Теперь Вы просто нажимаете x для удаления блока:

enter image description here

22
ответ дан 23 November 2019 в 03:27

Я использовал бы cut для этого

cut -f1,3- file.txt > newfile.txt
mv newfile.txt file.txt

, можно использовать это в качестве фильтра в энергии, также (это заменит все строки в файле; Вы могли также использовать (например) 2,9 вместо % к производственным линейкам 2-9 или выбрать строки, которые Вы хотите с V):

:%!cut -f1,3-

-f1,3- означает 'поле печати один, сопровождаемый полем три и всеми полями до конца строки'. По умолчанию, cut использование вкладка как ее разделитель; при необходимости в чем-то еще используйте -d опция (см. man cut).

6
ответ дан 23 November 2019 в 03:27

Вы можете попробовать также:

:%norm WdW

или вручную использование визуального способа:

  1. Вскакивают во вторую колонку (например, нажимая: W ).
  2. визуальный блок Начала Ctrl+v .
  3. Выбирают вторую колонку (например, нажимая: W , G ).
  4. Удаляют его, нажимая d .
<час>

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

$ ex +':exe ":%norm f\<Tab>dE"' -scx file

Связанный <глоток>: , Как написать буквальный, чтобы клавиша TAB использовала для движения?

См. также:

4
ответ дан 23 November 2019 в 03:27

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

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