куда тут m правильно влепить? вместо s что-то не работает
Код: Выделить всё
perl -e 's/\sometextatbegin(.){1,1000}sometext(.){1,1000}sometextatend//mg' -pi $1
Код: Выделить всё
perl -e 's/\sometextatbegin(.){1,1000}sometext(.){1,1000}sometextatend//mg' -pi $1
Тут шаблон нужен типа такого [\s\S]+ В подмножесто точки не входит перевод строки.time12345 писал(а):Как сделать так чтобы оно в (.) переводы строки тоже всчитывало?
у меня работаетtime12345 писал(а):а вы попробуйте. у вас работает? у меня ничего не помогало.
Код: Выделить всё
#!/usr/bin/perl -w
$string = "hello
world";
if ( $string =~ /([\s\S]+)/ )
{
print $1, "\n";
}
Код: Выделить всё
% ./1.pl
hello
world
Код: Выделить всё
home% echo -e "1\n2\n2.5\n3" | perl -np0e 's/(1)[\s]+(3)/$1foo$2/'
1
2
2.5
3
home% echo -e "1\n2\n2.5\n3" | perl -np0e 's/(1)[\S]+(3)/$1foo$2/'
1
2
2.5
3
home% echo -e "1\n2\n2.5\n3" | perl -np0e 's/(1)[\s\S]+(3)/$1foo$2/'
1foo3
zg писал(а):Тут шаблон нужен типа такого [\s\S]+
Код: Выделить всё
sometextatbegin
asdfasdf asdfads fsdaf ads fdafs
sometextatend
asd fasd fdsa fsdaaasdfadsfdasfsdafadsdasfdasfdsafdas fdasfdas fdas fdasf
Код: Выделить всё
sometextatbegin
asdfasdf asdfads fsdaf ads fdafs
sometextatend
Код: Выделить всё
perl -e 's/\sometextatbegin([\s\S.]){1,1000}sometextatend//mg' -pi file.txt
конечно естьtime12345 писал(а):а что, у вас есть варианты попроще перла?
Код: Выделить всё
home% cat 1.txt
sometextatbegin
asdfasdf asdfads fsdaf ads fdafs
sometextatend
asd fasd fdsa fsdaaasdfadsfdasfsdafadsdasfdasfdsafdas fdasfdas fdas fdasf
home% sed -z 's/sometextatbegin.*sometextatend//g' 1.txt
asd fasd fdsa fsdaaasdfadsfdasfsdafadsdasfdasfdsafdas fdasfdas fdas fdasf
home%
sed тоже умеет делать замены в файлах и бэкапы.time12345 писал(а):вы попробуйте именно способом как в первом посте
у меня будет.time12345 писал(а):но будет ли он работать?)) проверьте))