Remove comments and empty lines sed one-liner

sed -e 's/#.*//' -e 's/[ ^I]*$//' -e '/^$/ d'

…so I don’t have to think of it again.

4 thoughts on “Remove comments and empty lines sed one-liner

  1. Thanks for the one-liner. This is exactly the thing I was looking for to help parse a hosts file.

    sed -e ‘s/#.*//’ -e ‘s/[ ^I]*$//g’ -e ‘/^$/ d’ -e ‘s/127.0.0.1 //g’ -e ‘1,3d’

    • I came up with:
      sed -e ‘s/\s*#.*//’ -e ‘/^\s*$/ d’

      You need ‘s’ if you want the comment to be removed, if there is content before it in the same line.
      This solution also covers lines beginning with spaces before the comment, like the the op’s does.

Leave a Reply

Your email address will not be published. Required fields are marked *