need grep to output basename and line#


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting need grep to output basename and line#
# 1  
Old 07-15-2005
Question need grep to output basename and line#

I have a script that sorta works the way I want but I would rather
just get the base name and line number from the grep output.

My current script is this one liner:

grep -n "$1" $SCCSPATH/*/s.*.k | cut -c1-80

which if I was searching for 121197 I would get something like this:

/versyss/data/devel/src/prsrc/2.20/vs220/s.195pr.k:2000:* fix 121197

I would rather get something like this from my grep output:
s.195pr.k:2000:* fix 121197

Any ideas how this can be done (non perl answers only please)

TIA
Zoo591
# 2  
Old 07-15-2005
MySQL

grep -n "$1" $SCCSPATH/*/s.*.k | cut -c1-80


something like this should do

Code:
for i in `ls -l $SCCSPATH/*/s.*.k`
do
dirn=`dirname $i`
filen=`basename $i`
cd $dirn
grep -n "$1" $filen | cut -c1-80
done

# 3  
Old 07-15-2005
I tried your script RishiPahuja, but it had a problem with the basename
due to the -l option on ls as that supplied file attributes to the basename.

After removing the -l option your script did work it it did not show the
basename of the file beside each line#. Example of output shown below:

Looking for 121197
153:* 1.32 121197 Bug fix of gross earnings update-master and prov

1922:* fix 121197
1925:* end fix 121197
2207:* fix 121197
95:* 1.32 121197 Bug fix of gross earnings update-master and prov,


Thank you for trying.
Zoo591
# 4  
Old 07-15-2005
Tools

Try this instead...
-l should have been -1 Smilie

for i in `ls -1 $SCCSPATH/*/s.*.k`
do
dirn=`dirname $i`
filen=`basename $i`
cd $dirn
echo $filen ":" `grep -n "$1" $filen | cut -c1-80`
done
# 5  
Old 07-15-2005
grep -n "$1" $SCCSPATH/*/s.*.k | cut -c1-80 | sed 's|.*/||g '
# 6  
Old 07-15-2005
RishiPahuja: while your answer does provide a filename it is not quite what I am
looking for as it prints the names of file even when they do not match the
search pattern. Output of your script shown below:

s.191pr.k :
s.192pr.k :
s.194pr.k :
s.195pr.k : 153:* 1.32 121197 Bug fix of gross earnings update-master and prov 1
922:* fix 121197 1925:* end fix 121197 2207:* fix 121197

Becket: The sed add on you provided to my original script comes back with
this error:

sed: Command garbled: s|.*/||g

I appreciate your help.
Keep it coming.
Zoo591
# 7  
Old 07-15-2005
echo '/versyss/data/devel/src/prsrc/2.20/vs220/s.195pr.k:2000:* fix 121197' | nawk -F/ '{print $NF}'
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Get an output of lines in pattern 1st line then 10th line then 11th line then 20th line and so on.

Input file: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 (6 Replies)
Discussion started by: Sagar Singh
6 Replies

2. Shell Programming and Scripting

How to control grep output intact for each matching line?

I have multiple (~80) files (some can be as big as 30GB of >1 billion of lines!) to grep on a pattern, and piped the match to a single file. I have a 96-core machine so that each grep job was sent to the background to speed up the search: file1.tab chr1A_part1 123241847 123241848... (6 Replies)
Discussion started by: yifangt
6 Replies

3. Shell Programming and Scripting

Grep echo awk print all output on one line

Hello, I've been trying to find the answer to this with Google and trying to browse the forums, but I haven't been able to come up with anything. If this has already been answered, please link me to the thread as I can't find it. I've been asked to write a script that pulls a list of our CPE... (51 Replies)
Discussion started by: rwalker
51 Replies

4. UNIX for Dummies Questions & Answers

how to grep a number from output line

I`m having a output shown below, CFR 235,BBC DM-2 ALL CFR 111,BBC DM-2 ALL CFR 333,BBC DM-2 ALL from the above Output i want to use 235,111,333 as input for other purpose. these no always change every time i run script.so please suggest me the way i could do it with example,i have tried... (5 Replies)
Discussion started by: nitin_aaa27
5 Replies

5. Shell Programming and Scripting

Remove a specific line from grep output string

Dear All I want to search string "1000" from input file and if it found i want remove line that contain 1000 and also remove 3 line above it and 2 line below it. INPUT FILE: BHAT-D 2 aaa ID CODE GS UPDATE MODE LANG MCO MCL NUMPAGES 50 ... (7 Replies)
Discussion started by: jaydeep_sadaria
7 Replies

6. Shell Programming and Scripting

Grep multiple line pattern and output the lines

Hi I have the following Input -- -- TABLE: BUSINESS_UNIT -- ALTER TABLE RATINGS.BUSINESS_UNIT ADD CONSTRAINT FK1_BUSINESS_UNIT FOREIGN KEY (PEOPLESOFT_CHART_FIELD_VALUE_ID) REFERENCES RATINGS.PEOPLESOFT_CHART_FIELD_VALUE(PEOPLESOFT_CHART_FIELD_VALUE_ID) ; ALTER TABLE... (1 Reply)
Discussion started by: pukars4u
1 Replies

7. Solaris

Send cut output to basename

Hi, I'm running a command : pargs 20392 | egrep -e "-f "|cut -d " " -f3 | basename BUT the o/p of cut is not sending to basename. the o/p of: pargs 20392 | egrep -e "-f "|cut -d " " -f3 is /home/staff/Properties.cfg Appreciated ur help.. (2 Replies)
Discussion started by: axes
2 Replies

8. UNIX for Dummies Questions & Answers

problem with output of find command being input to basename command...

Hi, I am triying to make sure that there exists only one file with the pattern abc* in path /path/. This directory is having many huge files. If there is only one file then I have to take its complete name only to use furter in my script. I am planning to do like this: if ; then... (2 Replies)
Discussion started by: new_learner
2 Replies

9. UNIX for Dummies Questions & Answers

Grep or other ways to output line above and/or below searched line

Hi all, Would like to know how I could search for a string 'xyz' but have the output show the line plus the line above and/or below all lines found. eg. search for xyz from file containing: abc 12345 asdf xyz asdfds wwwww kjkjkj ppppp kkkxyz eeee zzzzz and the output to... (2 Replies)
Discussion started by: sammac
2 Replies

10. UNIX for Dummies Questions & Answers

How to grep / zgrep to output ONLY the matching filename and line number?

Hi all, I am trying to zgrep / grep list of files so that it displays only the matching filename:line number and does not display the whole line, like: (echo "1.txt";echo "2.txt") | xargs zgrep -no STRING If I use -o option, it displays the matching STRING and if not used, displays the... (3 Replies)
Discussion started by: vvaidyan
3 Replies
Login or Register to Ask a Question