У меня есть файл с разделением табуляцией как:
name1 verb1 name2 verb2 etc...
Я хочу удалить второй столбец. Я пытался редактировать один из этих ответов, но быть не знакомым с sed
и awk
, Я не мог.
Кто-либо может помочь мне?
В энергии необходимо быть в состоянии использовать команду
:%s/\t[^\t]*//
(замена ВКЛАДКА сопровождаемый нулем или большим количеством случаев любого символа кроме ВКЛАДКИ ни с чем). Если Ваш файл имеет только два столбца, Вы могли бы использовать немного более простое :%s/\t.*
или :%s/\t.*$
, которые заменяют первую ВКЛАДКУ и любой продолжающие символы до конца строки.
Принятый ответ намного более изящен, чем это (я upvoted это!), но если Вы не помните его, можно использовать vim
визуальный блочный режим непосредственно. Открытая энергия и идет (нормальный режим) к первому углу столбца, как это:
Тип CTRL-V
и Вы можете переместить курсор для выбора столбца, это на полпути:
Для движения в конце нажмите G
:
блок кажется поврежденным, потому что мы находимся на последней строке, которая является пробелом; просто поднимитесь одна строка (со стрелкой вверх или k
) для наблюдения его снова...:
Теперь Вы просто нажимаете x
для удаления блока:
Я использовал бы 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
).
Вы можете попробовать также:
:%norm WdW
или вручную использование визуального способа:
, Чтобы сделать это оперативный из командной строки, попробуйте:
$ ex +':exe ":%norm f\<Tab>dE"' -scx file
Связанный <глоток>: , Как написать буквальный, чтобы клавиша TAB использовала для движения? глоток>
См. также: