Linux - Displaying a file without the commentary lines

December 2016




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.

Grep

  • 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

Sed

  • 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

Perl

  • 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

Related :

This document entitled « Linux - Displaying a file without the commentary lines » from CCM (ccm.net) is made available under the Creative Commons license. You can copy, modify copies of this page, under the conditions stipulated by the license, as this note appears clearly.