2015-02-10 4 views
16

Как удалить первые 5 символов в каждой строке текстового файла?
У меня есть файл, как это:Как удалить первые 5 символов в каждой строке текстового файла с помощью vi?

4 Alabama 
    4 Alaska 
    4 Arizona 
    4 Arkansas 
    4 California 
    54 Can 
    8 Carolina 
    4 Colorado 
    4 Connecticut 
    8 Dakota 
    4 Delaware 
    97 Do 
    4 Florida 
    4 Hampshire 
    47 Have 
    4 Hawaii 

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

+0

Это то, что я нашел:.% S/^ \ {5} // г – Emmy

ответ

48

:%s/^.\{0,5\}// должен сделать трюк. Он также обрабатывает случаи, когда имеется менее 5 символов.

+1

это хороший ответ мне нравится. Благодарю. – Emmy

7

Используйте регулярное выражение ^..... для соответствия первым 5 символам каждой строки. использовать его в глобальной подмены:

:%s/^.....// 
+0

первые 5 символов различаются в каждой строке, мне просто нужно удалить первые символы, независимо от того, что они собой представляют. Поэтому мне не нужен матч. – Emmy

+3

На самом деле Barmar означал матч регулярного выражения - это то, что заменяется. '^' соответствует началу строки, а '.' соответствует любому символу. Команда ': s' заменяет весь совпадение между первым и вторым слэшем (в данном случае пять, возможно, разными символами в начале строки) с тем, что находится между двумя последними чертами - ничего, эффективно удаляя их. – lared

1

Попробуйте

:s/^.....// 

Вы, наверное, не нужно «^» (начало строки), и не было бы ярлыки для 5 символов - но просто хорошо :)

3

Поскольку текст выглядит как столбчатые данные, обычно будет полезным awk. Я хотел бы использовать V, чтобы выбрать строки, а затем нажмите :! и использовать AWK:

:'<,'>! awk '{ print $2 }' 

для печати из второго столбца данных. Экономит вас от подсчета пробелов.

2

Поскольку все линии выстроились в линию, вам не нужна замена, чтобы решить эту проблему. Просто подведите курсор к верхней левой позиции (Гг), то: CTRL + vGwlx

+0

Это правильный ответ. Ответы на регулярные выражения выше слишком пережарены для простоты этой проблемы. Проще говоря, в блочном виде выберите текст для удаления (ctrl + 'v' + movement,' G', чтобы перейти к концу файла, 'l' несколько раз, чтобы переместить выделение, чтобы включить все, что вы хотите удалить) и' x 'для удаления. – Jangari

Смежные вопросы