Как насчет awk
однострочника.Вы можете использовать его с find
или for loop
для массового замещения.
awk '/\$authsites/{sub(/\(.*\)/,"( )");print;next}1' INPUTFILE
Тест:
[jaypal:~/Temp] cat file00
$authsites = array ( 'flickr.com', 'picasa.com', 'blah.com', );
$authsites = array ( 'flickr.com', 'aaaa.com', 'blah.com', );
fefe
efef
$authsites = array ( 'flickr.com', 'picasa.com', );
[jaypal:~/Temp] awk '/\$authsites/{sub(/\(.*\)/,"( )");print;next}1' file00
$authsites = array ( );
$authsites = array ( );
fefe
efef
$authsites = array ( );
A for loop
, как это может работать (хотя могут быть лучшие способы)
Вы можете изменить имя в соответствии с вашими файлами
for i in $(find . -type f -name "file*" -exec grep -H "\$authsites" {} \;| cut -d":" -f1 | uniq); do awk '/\$authsites/{sub(/\(.*\)/,"( )");print;next}1' $i > $i.new; done