|
|||||||
| Forums | Search Forums | Register | Forum Rules | Man Pages | Albums | FAQ | Members | 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. |
|
|
|
Thread Tools | Search this Thread | Display Modes |
|
#1
|
|||
|
|||
|
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. ![]() |
| Sponsored Links | ||
|
|
#2
|
|||
|
|||
|
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 08:53 PM.. |
| Sponsored Links | ||
|
|
#3
|
||||
|
||||
|
Try... Code:
$ cat file1 #line1 #line2 line#3 line4 $ sed '/^ *#/d;s/#.*//' file1 line line4 |
|
#4
|
|||
|
|||
|
Quote:
![]() |
| Sponsored Links | |
|
|
#5
|
|||
|
|||
|
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 |
| Sponsored Links | ||
|
![]() |
| Thread Tools | Search this Thread |
| Display Modes | |
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| sed command : print lines having no # at the begining | hiten.r.chauhan | Shell Programming and Scripting | 3 | 02-28-2011 03:19 AM |
| Ignore identical lines | forumthreads | Shell Programming and Scripting | 4 | 11-19-2008 06:39 AM |
| awk, ignore first x number of lines. | trey85stang | Shell Programming and Scripting | 8 | 05-21-2008 04:44 AM |
| How can I ignore only the lines which have # at the begining? | csaha | Shell Programming and Scripting | 1 | 01-30-2006 02:35 AM |
| Make sed ignore lines | Scarlos | Shell Programming and Scripting | 2 | 07-21-2005 10:33 AM |
|
|