我有一个看起来像这样的文件:
NTILE()
我想删除包含**(双星号),单个星号后跟双引号(*“)和(tvg-name =”BR :)字符串的所有内容。 我设法用sed做它,但它不运行在php shell_exec();
这是我的sed代码
#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
如何使用shell_exec或任何其他php函数执行此操作? 谢谢!
答案 0 :(得分:1)
对于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