![]() |
|
|
google unix.com
|
|||||||
| Forums | Register | Forum Rules | Links | Albums | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here. |
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| awk, ignore first x number of lines. | trey85stang | Shell Programming and Scripting | 8 | 05-21-2008 05:44 AM |
| Ignore some lines with specific words from file comparison | jakSun8 | Shell Programming and Scripting | 2 | 03-13-2008 12:11 AM |
| How can I ignore only the lines which have # at the begining? | csaha | Shell Programming and Scripting | 1 | 01-30-2006 03:35 AM |
| Make sed ignore lines | Scarlos | Shell Programming and Scripting | 2 | 07-21-2005 11:33 AM |
| Removing duplicate lines ignore case | hellsd | UNIX for Dummies Questions & Answers | 17 | 12-02-2004 10:47 AM |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Ignore Lines Begining With #
Is there a standard way to make a shell script read a file, or list, and skip each line that contains # at the begining, or ignores the content starting after a # in line?
I'm looking to mimic the way commenting in a shell script normally works. This way I can comment my text files and lists my scripts process and ignore comment lines. Thanks guys. ![]() |
|
||||
|
If you want to do only a couple things with the output, filter you source file in a pipeline: Code:
grep -v '^[[:space:]]*#' /path/to/your/file | your_commands if you want do extensive stuff with your comment-stripped file, save the stripped file in a temp file, and use use the temp file for the rest of the procedure: Code:
grep -v '^[[:space:]]*#' /path/to/your/file >/tmp/stripped_source Note that I use ^[[:space:]]* at the start of the regular expression because lines that are completely comments can still contain leading whitespace. If you want to eliminate blank lines also, do Code:
egrep -v '(^[[:space:]]*#|^[[:space:]]*$)' /path/to/file >/tmp/stripped_file Last edited by hadarot; 08-18-2005 at 09:53 PM.. |
|
||||
|
If you want your script to behave like the ksh itself (ignore the part of a line after a "#" but use the part before it) you could do the following (replace "<spc>" with a literal space, "<tab>" with a tab char): Code:
script sed 's/#.*$/;s/^[<spc><tab>]*//;s/[<spc><tab>]*$//;/^$/d' file content of file # this is a line with comments # this too, but starting with blanks command 1 # this line contains an inline comment command 2 "#" # this too, but my script would be confused result command 1 command 2 " Alas, the script fails on the second line, but save for such delicacies it works. bakunin |
![]() |
| Bookmarks |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|