2009-04-08 6 views
0

Итак, у меня есть этот большой файл строк длины исправления. Я хочу сделать поиск и заменить на позицию линии символа.Регулярное выражение для поиска/замены в файле длины исправления

Пример:

xxxxxxx  010109 xxxxxx xxxxx 
xxxxxxx  010309 xxxxxx xxxxx 
xxxxxxx  021506 xxxxxx xxxxx 
xxxxxxx  041187 xxxxxx xxxxx 

Так что в этом случае я хотел бы найти какое-либо значение, начиная с позиции 13 до положения 18 и заменить его 010107.

Может кто-нибудь дать мне помочь в том, как сформулировать регулярное выражение для этого?

Большое значение.

ответ

1

Отредактировано: после тестирования, Notepad ++ не поддерживает {п} метод определения точного числа of chares

Это работает, проверено на ваших данных:

Поиск:

^(............)...... 

Заменить:

\1010107 
+0

+1 для обеспечения его работы в Notepad ++. –

+0

Спасибо, я думаю, что это может сработать. – homerjay

0

Попробуйте этот шаблон поиска:

^(.{12})\d{6} 

И это как выражение замены:

\1010107 
0

s/^ (?:. {12}) ({6}.) (?:. *) $/NNNNNN/

замена NNNNNN желаемого числа

0

что-то вроде этого:

 
sed 's/^\(.\{12\}\).\{6\}\(.*\)$/\1010107\2/' 

должен сделать трюк (экранированный для использования в командной строке)

0

Просто для записи вам не нужно регулярное выражение для чего-то подобного. Простое разделение или какая-то функция распаковки будет в порядке.