Я пытаюсь использовать sed (4.2.2-4+b1 debian 8 (jessie)) для замены текста в нескольких файлах.
Чтобы перейти от этого:
$var1 = array(foo=>"bar",bar=>"foo");
$var2 = array( foo=>"bar", bar=>"foo" );
$var1 = array(
foo=>"bar",
bar=>"foo"
);
Чтобы получить это:
$var1 = array( "foo" => "bar","bar" => "foo");
$var2 = array( "foo" => "bar", "bar" => "foo" );
$var1 = array(
"foo" => "bar",
"bar" => "foo"
);
Нормальное регулярное выражение будет:
/(\(|\(\s|,|,\s.+?)([a-z|A-Z].+?)=>/$1"$2" => /g
Использование sed вроде этого не работает, хотя
sed -i "s#\((\|(\s\|,\|,\s.+?\)\([a-zA-z].+?\)=>#\1\"\2\" => #g" *.php
Или же:
sed -i "s#\((\|(\s\|,\|,\s.+?\)\([a-z\|A-z].+?\)=>#\1\"\2\" => #g" *.php
Кто-нибудь знает, что я делаю не так?