作者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://www.ptt.cc/bbs/Linux/M.1456751085.A.0DA.html
→ Neisseria: perl -0777 -p -e 's{<script>(.*?)</script>}{}gs;' 02/29 21:53
→ bitlife: javascript這種一般性程式,用regex無法100%正確處理,絕大 03/01 17:35
→ bitlife: 多數情況OK,就看會不會遇到例外 03/01 17:35
→ Gold740716: 樓上是遇到 var endTag = '</script>'; 嗎 XD 03/02 20:41
→ Neisseria: 碰到樓上那種寫法,regex 應該就爆了吧 XD 03/02 20:44
→ bitlife: 除了字串之外,被註解掉的</script>也是例外之一 03/02 23:08
→ soem: 應該說是html的結構造成的結果,用XML或DOM處理可能會較容易 03/03 00:59