Linux - Displaying a file without the commentary lines

Ask a question

It may be needed to view a file without displaying the numerous commentary lines attached to it (especially for the configuration files of your OS) and also considering removal of the empty lines.


  • Making use of "egrep" (or "grep-E"):
    • egrep -v '^(#|$)'  /etc/samba/smb.conf 
    • grep -E -v '^(#|$)'  /etc/samba/smb.conf
  • Lines starting with a hash (#) or the ending symbol dollar($) shall not be displayed.
  • In this case the delimiter comment is not placed at the start of line but behind (space or tab), but you can change your expression as follows:
    • grep -E -v '^(#|;|$|[ ]*#)' /etc/samba/smb.conf


  • Making use of sed
    • sed -e '/^[ ]*#/d' -e '/^$/d' /etc/samba/smb.conf
  • Here it removes firstly, lines begining with a space or a pound sign, then removes all blank lines.
  • You can improve the expression like:
    • sed -e '/^[ ]*#/d' -e '/^[ ]*;/d' -e '/^$/d' /etc/samba/smb.conf


  • Making use of perl.
  • Making use of perl will imply,considering the implementation of regex based on the engine used by the utilities.
  • Using the NFA (Nondeterministic Finite Automation) engine, though slower than DFA (Deterministic Finite Automation) engine,allows you to refine and manage the regex to get a specific result:
    • perl -ne 'print unless /^\s*[;\$#]|^$/' file_config

Unable to delete file: Argument list too long
Bash - Parameters