Linux sed模式命令
所以我在$1上应用了这个sed命令,它是一个文件 我想知道的是sed如何计算所有的斜杠和反斜杠 继承模式中的任何字符意味着什么Linux sed模式命令,linux,bash,shell,sed,Linux,Bash,Shell,Sed,所以我在$1上应用了这个sed命令,它是一个文件 我想知道的是sed如何计算所有的斜杠和反斜杠 继承模式中的任何字符意味着什么 sed '/^\/\*/d/.*\*\//d' $1 据我所知 '/^ ....../d' 删除行开头的一些图案(考虑第二个d) -第一个d代表什么,点和/或/\(unescape字符)代表什么 有人能给我解释一下吗?这实际上是两个背靠背的sed命令: /^\/\*/d /.*\*\//d ^匹配行首,\/匹配文字正斜杠,\*匹配文字星号。(由于正斜杠和星号是“
sed '/^\/\*/d/.*\*\//d' $1
据我所知
'/^ ....../d'
删除行开头的一些图案(考虑第二个d)
-第一个d代表什么,点和/或/\(unescape字符)代表什么
有人能给我解释一下吗?这实际上是两个背靠背的sed命令:
/^\/\*/d
/.*\*\//d
^
匹配行首,\/
匹配文字正斜杠,\*
匹配文字星号。(由于正斜杠和星号是“元字符”,因此需要使用反斜杠对其进行转义,以实现字面上的匹配。)
*
匹配任何字符序列,\*
再次匹配文字星号,\/
再次匹配文字斜杠
把它们放在一起,这样做就是删除C风格的注释,但仅当它们出现在一行的开头时:
/* This will go away */This will stay
请阅读。祝你好运。我几乎看不到它会删除所有的/*..*/内联,如果/*..*/更改为//,我就只需要/^\/\/\.*/d了?如果注释扩展到多行(我将不得不使用某种分隔符或使用一些if?)如何?是的,您的示例将从
/
删除到行的末尾,但仅当它从行的开头开始时(因为您使用^
锚定它)。我认为你不能用sed来处理多行评论;您需要一些有状态的东西,比如perl或awk。这帮助您变得很棒