In the blessed world of unix, there is an easy solution to this: you simply use grep to remove those lines from a listing of the contents of the file.
First, grep out the comments:
grep -v \# file
Usually, that will leave you with a lot of unnecessary whitespace, as well. So just pipe that output through an enhanced grep and filter for blank lines:
grep -v \# file | egrep -v "^$"
To clarify the above, here's a break down of each component:
grep - self explanatory
-v - tells grep to remove what matches rather than show it
\ - tells the shell the special character # is to be passed to the process without interpretation
# - the near-universal symbol for "comment" in config-ese
| - a pipe. Tells the shell to send the output of what's to the left of the pipe to what's on its right
egrep - grep with extended regular expressions (a sophisticated text manipulation language)
-v - telling egrep to remove the matches
"" - passing what's inside to grep without shell interpretation
^ - Means "the start of the line"
$ - Means "the end of the line"
So what you're telling it, in essence, is the following:
- Read the contents of file
- Remove all lines with "#"
- Pass the result to egrep
- Egrep: remove all lines which begin and immediately end (ie, a blank line) and output the result
This is one of those little tricks that goes a long way to simplifying interactions with Unix hosts and it's actually the first thing I do when I go to read any new service's default config.
Hope it helps.
No comments:
Post a Comment