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

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

name1   verb1   name2   verb2   etc...

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

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

1
задан 13 April 2017 в 15:23

3 ответа

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

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

enter image description here

Чтобы перейти в конец, нажмите G:

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

enter image description here

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

16
ответ дан 24 May 2018 в 03:12

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

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

. Вы можете использовать это как фильтр внутри vim (это заменит все строки в файле, вы также можете использовать (например ) 2,9 вместо % для обработки строк 2-9 или выберите нужные строки с помощью V):

:%!cut -f1,3-

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

6
ответ дан 24 May 2018 в 03:12

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

:%norm WdW

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

Переход во второй столбец (например, нажатием: W). Начните визуальный блок с помощью Ctrl + v. Выберите второй столбец (например, нажав: W, G). Удалите его, нажав d.

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

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

Связано: Как написать литерал для клавиши Tab для использования для движения ?

См. также:

Удалить конкретный столбец в VIM / gvim без использования режима Visual Block
1
ответ дан 24 May 2018 в 03:12

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

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