删除行以#开头,但不是#!/ bin / ksh行

时间:2017-07-03 16:09:33

标签: sed

如何删除以#而非#!/bin/ksh开头的行?

使用sed -e '/^#/ d' sed.sh将删除包含#!/bin/ksh的每一行。

2 个答案:

答案 0 :(得分:0)

 Thanks @Daniel H
 sed -e '/#!\/bin\/ksh/p' -e '/^#/d' sed.sh 

这是给出我正在寻找的结果的命令:

答案 1 :(得分:0)

像这样:

sed '/^#/{/^#!\/bin\/ksh/d}' sed.sh

对于以#开头的所有行,如果它们不以#!/bin/ksh开头,请将其删除。

由于评论(和shebang行)可能在前面有空格,因此更精确的是

sed '/^[[:space:]]*#/{/^[[:space:]]*#![[:space:]]*\/bin\/ksh/d}' sed.sh