$ cat ip.txt
tr("Text");
tr("Textfsafasfsfas
safasdfsafas");
foo(tr("text"));
tr("text").arg(text);
tr("I am some text")
.arg(i do stuff);
tr("I am some text")
.arg(i do stuff)
.arg(I also do stuff);
tr("I am some text")
.arg(i do stuff);
Если файл достаточно мал, чтобы удерживать его в памяти после того, как все строки распечатаны как одна строка,
$ perl -0777 -pe 's/\btr\(([^)]+)\)(?!\s*.arg)/$1/g' ip.txt
"Text";
"Textfsafasfsfas
safasdfsafas";
foo("text");
tr("text").arg(text);
tr("I am some text")
.arg(i do stuff);
tr("I am some text")
.arg(i do stuff)
.arg(I also do stuff);
tr("I am some text")
.arg(i do stuff);
Если результат в порядке, добавьте Параметр -i
или -i.bak
для редактирования на месте
Изменить:
Спасибо @Costas за указание на \ n? \ S *
можно уменьшить до \ s *