Users searches with different phrases like how to cat and remove commented lines. Here is How to Print Without Commented Out Lines on SSH/CLI. PRINT is the right phrase. There are many tools and combination of commands to do the same work. Why only cat, there are many other animals on this Earth! Whatever you use, you probably need to use unix pipe.
When We Need to Print Without Commented Out Lines on SSH/CLI
Let us take the example of this method to Remove Expires Thu, 19 Nov 1981 PHP Header in Ubuntu Server.
We are using unix and GNU/Linux for over 1.5 decades. We know the approximate location of a string in the php.ini
file, even some times the line number remains in memory. php.ini
is an ugly file with billions of comments. The production files looks like a documentation. It is difficult to search for a group of string which can not be filtered out with simple grep.
---
We are not writing anything to the file.
How to Print Without Commented Out Lines on SSH/CLI
We can find php.ini
by running any of the commands, just for this example :
1 2 | locate php.ini php --ini |
Take that, we’ll work with this file :
1 | /etc/php5/cgi/php.ini |
if you directly cat :
1 | cat /etc/php5/cgi/php.ini |
it gives a horrible result. Any of these two commands :
1 2 | sed -e '/^;/d' /etc/php5/cgi/php.ini cat /etc/php5/cgi/php.ini | perl -lne "print unless /^;/" |
will keep the white spaces, which is not EXACTLY what normally wanted. To make the white spaces collapsed, we can run :
1 | cat /etc/php5/cgi/php.ini | grep -E -v "^\s*($|;)" |
this will remove all the commented out lines with ;
and collapse the white spaces. As it is difficult to remember the bigger size command, we can make it a script. We have kept it as a Github project here.
Script of few lines :
1 2 3 4 5 6 7 8 9 10 11 | #!/bin/bash -e # gnu gpl 3.0 # dr. abhishek ghosh # thecustomizewindows.com echo " " echo "Supply the path below:" read path echo " " echo "Supply the pattern below:" read pattern cat $path | grep -E -v "^\s*($|"$pattern")" |
Save it as strip.sh
. First, chmod it rightly :
1 | chmod +x strip.sh |
then execute it :
1 | sh strip.sh |
It will ask for the path
, you will enter the whole path or relative path :
1 | /etc/php5/cgi/php.ini |
and hit the return key/enter. Then it will ask for the pattern
, for php.ini
this pattern was ;
, if it was other file, like Nginx config file, it would be #
, for CSS or PHP it could be /
or //
, so on, so type it :
1 | ; |
and hit the return key. Quite obviously, you can directly wget the RAW file from the GitHub repo. Follow the repo owner or fork it to remember the simple thing.