我有一个看起来像这样的文件:
#EXTM3U
#EXTINF:-1 tvg-id="A&E [Brazil]" tvg-name="A&E **" tvg-logo="http://url/2dhy3yl" group-title="FILMES & SERIES",A&E **
http://url/live/Enrico/321/6660.ts
#EXTINF:-1 tvg-id="A E [Brazil]" tvg-name="AeE" tvg-logo="http://url/2dhy3yl" group-title="FILMES & SERIES",AeE
http://url/live/Enrico/321/232.ts
#EXTINF:-1 tvg-id="A&E [Brazil]" tvg-name="BR: AeE *" tvg-logo="http://URL/2dhy3yl" group-title="FILMES & SERIES",AeE *
http://url/live/Enrico/321/5171.ts
#EXTINF:-1 tvg-id="A&E HD [Brazil]" tvg-name="A&E HD" tvg-logo="http://URL/2dhy3yl$
http://url/live/Enrico/321/4057.ts
我想删除包含**(双星号),单个星号,后跟双引号(*“)和(tvg-name =”BR :)字符串的所有内容。我设法用sed做它但它不运行在php shell_exec();
这是我的sed代码
sed -i '/\*\*/d' ./filename
sed -i '/tvg-name="BR:/d' ./filename
sed -i '/\*"/d' ./filename
我如何使用shell_exec或任何其他PHP函数执行此操作?谢谢!
对于PHP,假设文件的内容已被收集到$ sContents参数中:
$sContents = preg_replace('/(\*\*|\*"|"BR:)/', '', $sContents);
而对于sed:
sed -e 's/\*\*//' -e 's/\*"//' -e 's/"BR://' filename
sed非常老,而且Perl功能更强大,并使用与PHP相同的正则表达式逻辑:
perl -pe 's/(\*\*|\*"|"BR:)//' filename