Нужен Sed или любой скрипт для удаления пробелов между символами и замены подчеркиванием - PullRequest
1 голос
/ 06 апреля 2011

У меня есть большой языковой файл .ini, строки которого выглядят так:

CC MY APPS=My aplications
CC MY APPLICATION SETTINGS TITLE=My Settings

Мне нужно удалить все пробелы между CC и = и заменить их на подчеркивания следующим образом:

CC_MY_APPS=My aplications
CC_APPLICATION_SETTINGS_TITLE=My Settings

Ответы [ 3 ]

2 голосов
/ 06 апреля 2011

Лучше использовать awk

$ awk 'BEGIN{OFS=FS="="}{gsub(/ /,"_",$1)}1' file
CC_MY_APPS=My aplications
CC_MY_APPLICATION_SETTINGS_TITLE=My Settings

В качестве альтернативы, если у вас есть Ruby (1.9 +)

$ ruby -F"=" -ane '$F[0].gsub!(/\s+/,"_");puts $F.join("=")' file
0 голосов
/ 06 апреля 2011

В качестве альтернативы, если ваши значения не содержат '=', вы можете попробовать:

perl -pi.bak -e 's/\s+(?=.*=)/_/g' file.ini

с прогнозом.

0 голосов
/ 06 апреля 2011

Perl способ сделать это, очень похоже на решение kurumi в Ruby:

perl -i.orig -F= -ane '$F[0]=~s/\s+/_/g;print join"=",@F' file.ini

Исходный файл будет сохранен в file.ini.orig

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...