sed -r 's/([^"])([[:alpha:]_][[:alnum:]_]*)[[:blank:]]*=>/"" => /g'
encontre um caractere que não seja de aspas, seguido pela chave de hash, seguido pelo espaço em branco opcional seguido por =>
e insira aspas ao redor da chave.
Estou tentando usar o sed (4.2.2-4 + b1 debian 8 (jessie)) para substituir o texto em vários arquivos.
Para sair disso:
$var1 = array(foo=>"bar",bar=>"foo");
$var2 = array( foo=>"bar", bar=>"foo" );
$var1 = array(
foo=>"bar",
bar=>"foo"
);
Para obter isso:
$var1 = array( "foo" => "bar","bar" => "foo");
$var2 = array( "foo" => "bar", "bar" => "foo" );
$var1 = array(
"foo" => "bar",
"bar" => "foo"
);
O regex normal seria:
/(\(|\(\s|,|,\s.+?)([a-z|A-Z].+?)=>/$1"$2" => /g
Usar o sed parece que isso não está funcionando embora
sed -i "s#\((\|(\s\|,\|,\s.+?\)\([a-zA-z].+?\)=>#\"\" => #g" *.php
Ou:
sed -i "s#\((\|(\s\|,\|,\s.+?\)\([a-z\|A-z].+?\)=>#\"\" => #g" *.php
Alguém sabe o que estou fazendo errado?