Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 通过'从web文件中删除注释或批注;tr';或';sed';命令_Linux_Sed_Tr - Fatal编程技术网

Linux 通过'从web文件中删除注释或批注;tr';或';sed';命令

Linux 通过'从web文件中删除注释或批注;tr';或';sed';命令,linux,sed,tr,Linux,Sed,Tr,我愿意像这样用Linux命令压缩HTML文件 tr -d "\n\t\r" 但是如何从web文件中删除注释或批注呢 比如说, <! -- adcdefg --> <% -- asdfasdf -- %> /* asdfasdfasdf */ /*asdfasdfasdf*/ 我只想删除这些评论。试试看(但要小心,它很容易删除太多的评论,所以先备份你的文件) 对于和(在后面没有空格) 以char开头(以^开头的类表示“不是其中一个”,*表示任何出现,包括0),

我愿意像这样用Linux命令压缩HTML文件

tr -d "\n\t\r"
但是如何从web文件中删除注释或批注呢

比如说,

<! -- adcdefg -->

<% -- asdfasdf -- %>

/* asdfasdfasdf */

/*asdfasdfasdf*/
我只想删除这些评论。

试试看(但要小心,它很容易删除太多的评论,所以先备份你的文件)

对于
(在
后面没有空格)

  • char开头(以
    ^
    开头的类表示“不是其中一个”,
    *
    表示任何出现,包括0),因此
    [^>]*
    表示任何非
    出现
  • 然后是
    >
动作
s/Pattern//g

  • 无内容替换模式(
    /
    是内部无内容的替换模式,因此它会删除搜索模式)
  • g
    选项用于指定行上的所有事件,而不仅仅是第一个(默认情况下)
对于
/*blabla*/
来说,它有点热,因为它可能包含很多内容在内部和几行中。您应该给出一些假设,以避免出现巨大的未解块sed;-)


在这两种情况下,任何包含结束分隔符的字符串都会导致此类基本sed出现问题

在第三方工具下使用sed with s option
tr
不是删除注释的正确工具(尽管它可以删除换行符等,或者用空格替换它们,这样可能更安全)。oops在
[^>]
之后缺少一个
*
,非常感谢。)你知道关于这种方式的任何参考资料吗。我不明白这部分“]*>”在帖子中添加了评论
sed 's/<[!%][^>]*>//g' YourFile