Как удалить столбцы в файле vi?

У меня есть файл vi, содержащий сотни строк в следующем формате

029.inp.log:  SCF  Done:   E(RHF)  =   -844.790844670      A.U.  after    26 cycles 

Я хочу удалить все столбцы (разделенные пробелами / символами табуляции., Когда я вставил их сюда), кроме первого (029.inp.log:) и пятого (-844.790844670). Может кто-нибудь мне помочь?

2 ответа

Нажмите ctrl+v для выбора блока. использование h, j, k, l клавиши для навигации и нажмите клавишу d удалить выбранный блок. Графический редактор вроде kate также имеет возможность выбора блока.

Если вы не ограничены vi, команда оболочки - хороший выбор для этой задачи.

cat your_filename | cut -f 1,5 > result_filename

Что касается выделения прямоугольника в vim, вы должны гарантировать, что поля во всех строках имеют одинаковую ширину.

Возможно команда vim :%!cut -f1,5 тоже нормально, но я не могу сейчас попробовать.

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