作者Gold740716 (项为之强)
看板Linux
标题[问题] 包含换行符的文字处理
时间Mon Feb 29 21:04:41 2016
我想把某 html 的 javascript 都切掉,
用 perl 写就是 ` $html =~ s
#<script(.|\n)*?</script>
##g ; `
我想知道有没有单行的写法。
`perl -pe` 会变成逐行处理,
而 sed 和 awk 又只有处理单行内的比较方便。
sed 还没有贪婪模式……。
我用的方法:
$ tr '\n' '\0' < foo.html | perl -pe '...' | tr '\0' '\n'
--
因为她不知道,唯一值得她流泪的人,绝不会让她流泪。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.116.102.204
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1456751085.A.0DA.html
1F:→ Neisseria: perl -0777 -p -e 's{<script>(.*?)</script>}{}gs;' 02/29 21:53
2F:→ bitlife: javascript这种一般性程式,用regex无法100%正确处理,绝大 03/01 17:35
3F:→ bitlife: 多数情况OK,就看会不会遇到例外 03/01 17:35
4F:→ Gold740716: 楼上是遇到 var endTag = '</script>'; 吗 XD 03/02 20:41
5F:→ Neisseria: 碰到楼上那种写法,regex 应该就爆了吧 XD 03/02 20:44
6F:→ bitlife: 除了字串之外,被注解掉的</script>也是例外之一 03/02 23:08
7F:→ soem: 应该说是html的结构造成的结果,用XML或DOM处理可能会较容易 03/03 00:59