Найти и заменить знак препинания в первом столбце для нескольких текстовых файлов - PullRequest
0 голосов
/ 28 октября 2011

Требуется решение, аналогичное этому сообщению ( Найти и заменить конкретный термин в нескольких файлах ), но для замены знака пунктуации в первом столбце каждого текстового файла с вкладками с разделителями.

Пример:

file1.txt
afile2.txt
3file.txt
...

все остальные имена файлов заканчиваются на .txt

Формат текстовых файлов имеет «вкладку» между столбцами и выглядит так:

aaaa:bbb    second_column    third_column
w:xyz    another_second_column    another_third_column

Мне нужно заменить : в первом столбце другим символом, таким как ##.

Пожалуйста, помогите.

Обрабатывает ли Perl символ : как резак столбцов?

1 Ответ

3 голосов
/ 28 октября 2011

Заменить на месте первое двоеточие в первом столбце с разделителями табуляции в строке на ##:

perl -i.bak -pe's/^([^\t:]*):/$1##/' *.txt

Обрабатывает все .txt-файлы в текущем каталоге, сохраняя версии резервной копии в .bak-файлах.

Вот вариант, который не требует захвата (предложенный @Brad Gilbert в комментариях):

perl -i.bak -pe's/^[^\t:]*\K:/##/' *.txt

Оба сценария дают одинаковый результат.

...