Разве вы не слишком усердно играете с регулярным выражением для такой простой работы?
Почему бы сегодня не разделить ребенка на это?
#!/usr/bin/perl
while (<>)
{
@F = split "'";
@F = map { $_ % 2 ? $F[$_] : lc $F[$_] } (0..@F);
print join "'", @F;
}
Выше приведено для понимания,Мы часто разумно объединяем две последние строки:
print join "'", map { $_ % 2 ? $F[$_] : lc $F[$_] } (0..@F);
Или наслаждаемся большим, делая его однострочным?(в оболочке bash) В принципе это выглядит следующим образом:
perl -pF/'/ -e 'join "'", map { $_ % 2 ? $F[$_] : lc $F[$_] } (0..@F);' YOUR_FILE
В действительности, однако, мы должны уважать оболочку и выполнить некоторую побег (тяжелую) работу:
perl -pF/\'/ -e 'join "'"'"'", map { $_ % 2 ? $F[$_] : lc $F[$_] } (0..@F);' YOUR_FILE
(Одиночная кавычка должна состоять из 5 букв: '"'"'
)
Если это не помогает вашей работе, это помогает спать.