Хотя они, вероятно, решают проблему оригинального плаката, ни один из ответов не решает проблему, указанную в заголовке вопроса. Мое предложение убрать первую строку вопроса и переименовать его как «Удаление одного столбца в vim», которое было единодушно отклонено, вот решение для людей, которые приходят туда, действительно ища это.
Удаление столбца (здесь второй, как в примере с псевдокодом OP) с помощью awk
в vim
:
:%!awk '{$2=""; print $0}'
Конечно, это также работает для части файла - например, для строк с 10 по 20:
:10,20!awk '{$2=""; print $0}'
Что касается "[идущего] awk
в Vim
в поиске", не уверен, что вы точно можете сделать это, но в любом случае поиск и замена - это простая работа для awk
, если не ее основной цель. Следующее заменяет «pattern» на «betterpattern» во втором столбце, если оно соответствует:
:%!awk '$2~"pattern" {gsub("pattern","betterpattern",$2)}
Обратите внимание, что оператор NOT
требует экранирования (\!
вместо !
). Следующее заменяет значение во втором столбце его приращением на 10, если оно соответствует «число», и оставляет другие строки без изменений:
:%!awk '$2~"number" {gsub($1,$1+10)} $2\!~"number" {print $0}'
Appart с этого момента это просто awk
синтаксис.