01-29-2009
grep vs do while read
I have inherited the UNIX scripting duties for our team and have only been at this for a few months so I apologize for what may be a simple question.
We have a script we are reworking. Part of this script takes a parameter and reads a csv file. When it finds a matching line, the cut command is used to parse out and assign script variables from the matching line.
This works fine (code shown below). My question is really just a general one. I get the idea of using grep to "filter" just the records we want (based on $1, and then again, the lines that end with 'C')
In our case the file is very small no more than 25 lines. I am wondering if we could also use a do while read loop to actually "read" the file line by line instead of using grep - what would be the merits of each approach?
Any input you have would be greatly appreciated!
thanks,
JH
set RECORDS = `grep ^$1 ${CFGFILE} | grep 'C$'`
foreach record ( ${RECORDS} )
set rSID = `echo $record | tr -s " " | cut -f1 -d","`
set rCLIENT = `echo $record | tr -s " " | cut f2 -d","'
set rINSTANCE = `echo $record | tr -s " " | cut -f3 -d","`
set rSERVER = `echo $record | tr -s " " | cut -f4 -d","`
set rTYPE = `echo $record | tr -s " " | cut -f5 -d","`
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Dear all,
I am reading a file that has 1 column. While reading I must find the line references from the another file. The following shell doesn't works.
Please help
#!/bin/bash
while read filename; do
grep ${filename} fs_full.dat >> unprocfull.dat;
done < unproc.dat
But when... (2 Replies)
Discussion started by: mr_bold
2 Replies
2. UNIX for Dummies Questions & Answers
I am still fairly new to unix scripting and I will try my best to explain my question the best I can....
I have a text file called hello.txt, and in this file I need to search every line that contains the words "help" and "cat" and move the respective lines into their own columns in another... (2 Replies)
Discussion started by: silvermax
2 Replies
3. Shell Programming and Scripting
I have a key file
$ cat klist
5 N:8855 CASA VERDE ROAD :32827 :ORLAND
5 N:585 MOLLY LANE :30189 :WOODST
5 N:320 NINA ROAD :32304 :TALLAH
and a data file, see example of the line below:
N:RT 15 & N 7TH STREET :17837 :U SAVE
I need to search by key (2nd field) from klist... (6 Replies)
Discussion started by: migurus
6 Replies
4. Shell Programming and Scripting
Hello Everyone,
i need to read specific number of lines ( always serialized ; i.e from 10 to 20 or from 34 to 44 ) in a file , where the first line is found by grep 'ing a keyword.
example
file.txt
------------------------------------------------------------------
--header
this is the... (7 Replies)
Discussion started by: alain.kazan
7 Replies
5. Shell Programming and Scripting
I'm putting together a script that will search my mail archives for emails that meet certain criteria and output the files to a text file.
I can manually cat that text file and pipe it into sendmail and it will work (i.e. cat /pathtofile/foo.txt | sendmail -t me@company.com)
My script sends... (7 Replies)
Discussion started by: binary-ninja
7 Replies
6. UNIX for Dummies Questions & Answers
I have two files
file1.txt
angie
mary
susan
file2.txt
angie blond
mary brunnet
susan red
christine blackI want to get this output
angie blond
mary brunnet
susan redI write
grep --file=file1.txt file2.txtand i get no results
i also wrote
cat file1.txt|while read line... (19 Replies)
Discussion started by: FelipeAd
19 Replies
7. Shell Programming and Scripting
Hi Guys,
I have a small script which greps for the username reading from stdinput.
./file.sh pattern
pattern=$1
grep "blah blah.*$pattern" /home/user/log.txt
Instead of typing the pattern everytime i want to read the pattern from a file inside the shell script and execute the... (5 Replies)
Discussion started by: Irishboy24
5 Replies
8. Shell Programming and Scripting
Hi,
I have a file while is the output of lspath command and output of file is
#cat lspath.txt
Enabled hdisk0 vscsi0
Enabled hdisk0 vscsi1
Enabled hdisk1 vscsi0
Enabled hdisk2 vscsi0
Enabled hdisk2 vscsi1
Missing hdisk3 vscsi0
Enabled hdisk3 vscsi1
Have created script to check state... (7 Replies)
Discussion started by: ksgnathan
7 Replies
9. UNIX for Dummies Questions & Answers
Hi,
I have a number of files containing the information below.
"""""
Fundallinfo
6.3950 14.9715 14.0482
"""""
I would like to grep for Fundallinfo and use it to read the next line? I ideally would like to read the three numbers that follow in the next line and... (2 Replies)
Discussion started by: Paul Moghadam
2 Replies
10. Shell Programming and Scripting
Hi Team,
in /tmp folder i have thousands of log files i want to read each file and grep a value called "Calling This".
Each logfile name is different but it ends with .log.
How can i achieve this?
Please excuse if i did any mistake by not following forum standards. I will surely follow... (10 Replies)
Discussion started by: darling
10 Replies
CUT(1) FSF CUT(1)
NAME
cut - remove sections from each line of files
SYNOPSIS
cut [OPTION]... [FILE]...
DESCRIPTION
Print selected parts of lines from each FILE to standard output.
Mandatory arguments to long options are mandatory for short options too.
-b, --bytes=LIST
output only these bytes
-c, --characters=LIST
output only these characters
-d, --delimiter=DELIM
use DELIM instead of TAB for field delimiter
-f, --fields=LIST
output only these fields; also print any line that contains no delimiter character, unless the -s option is specified
-n with -b: don't split multibyte characters
-s, --only-delimited
do not print lines not containing delimiters
--output-delimiter=STRING
use STRING as the output delimiter the default is to use the input delimiter
--help display this help and exit
--version
output version information and exit
Use one, and only one of -b, -c or -f. Each LIST is made up of one range, or many ranges separated by commas. Each range is one of:
N N'th byte, character or field, counted from 1
N- from N'th byte, character or field, to end of line
N-M from N'th to M'th (included) byte, character or field
-M from first to M'th (included) byte, character or field
With no FILE, or when FILE is -, read standard input.
AUTHOR
Written by David Ihnat, David MacKenzie, and Jim Meyering.
REPORTING BUGS
Report bugs to <bug-coreutils@gnu.org>.
COPYRIGHT
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICU-
LAR PURPOSE.
SEE ALSO
The full documentation for cut is maintained as a Texinfo manual. If the info and cut programs are properly installed at your site, the
command
info cut
should give you access to the complete manual.
cut (coreutils) 4.5.3 February 2003 CUT(1)