Simple sed script question


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Simple sed script question
# 1  
Old 11-09-2012
Simple sed script question

Script newbie, so I'm sure I'm missing something obvious here, but how come this simple script does not work?

Code:
#!/bin/bash                                                                                                                                                                                                                                      
sed '/$1/,/^$/!d' $2

I make the script executable and run ./script.sh string filename, but nothing happens and I any result at all, even though this works fine in the shell:

Code:
sed '/string/,/^$/!d' filename

# 2  
Old 11-09-2012
use double-quotes instead of the single-quotes - you need to have your script parameter evaluated.
This User Gave Thanks to vgersh99 For This Post:
# 3  
Old 11-09-2012
Thank you for the quick reply, and yes, that did the trick. Much appreciated. Smilie

---------- Post updated at 06:33 PM ---------- Previous update was at 06:00 PM ----------

And if I want to be able to input multiple filenames? This apparently doesn't work the way I expected:

Code:
#!/bin/bash                                                                                                                                                                                                                                      
for i
do
sed "/$1/,/^$/!d" $2
done

./script.sh string filename*

I have 3 files with the name filename1, filename2 and filename3, but my script only returns the result from filename1, and does it three times. I'm lost...

Last edited by KidCactus; 11-09-2012 at 02:07 PM..
# 4  
Old 11-10-2012
Try:
Code:
#!/bin/bash
str=$1
shift
for i
do
 sed '/'"$str"'/,/^$/!d' "$i"
done

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Simple SED Question

I don't understand this command behavior. echo "abc" |sed 's/a/&_&/' (4 Replies)
Discussion started by: Vartika18
4 Replies

2. Shell Programming and Scripting

simple sed question - replace from phrase to end of line

I have the following line an in input file I want to digest with sed and simple replace the bold part with a variable defined in my bash script. I can do this in several sed operations but I know there must be a way to do it in a single sed line. What is the syntax? Line in file:... (1 Reply)
Discussion started by: graysky
1 Replies

3. AIX

Simple Script question

I am trying to gather a report on service accounts. The report needs the account and the last time they changed there passwords date (Lastupdate). I have been doing this one by one and wondering if there is a simple for loop to gather all the information. your help is greatly appreciated. (4 Replies)
Discussion started by: audis$
4 Replies

4. Shell Programming and Scripting

Simple sed question.

I have a log output with a format similar to this: a=1, b= 2 c=0, d= 45, e=100 ... and so on. I figure I can just use awk or something to pipe the file to sed, but I'm trying to replace all the values above with 0. I've tried: cat blah | sed 's/=\(.*\),/0/'but that didn't work. ... (6 Replies)
Discussion started by: throw_a_stick
6 Replies

5. Shell Programming and Scripting

simple sed question

How do I remove parentheses using sed? input (192.168.1.1) output 192.168.1.1 (4 Replies)
Discussion started by: streetfighter2
4 Replies

6. Shell Programming and Scripting

simple awk/sed/tr question

I have a file CREATE TABLE DDD_EXT --- 1000 ( val u1 val u1 ); CREATE TABLE dsdasd_EXT --- 1323 ( val u1 val u1 ); CREATE TABLE AAAAAA_EXT --- 1222 ( val u1 val u1 ); CREATE TABLE E_EXT --- 11 ( val u1 val u1 (2 Replies)
Discussion started by: jville
2 Replies

7. Shell Programming and Scripting

Simple for script question

I haven't done any scripting for quite a while and was trying to remember how to do a script with a for loop that uses another command for input straight from the terminal, IE: for num in `cat somefile | awk <whatever>` do echo $num; echo blah; echo blahblah; done; Hopefully something quick... (1 Reply)
Discussion started by: Vryali
1 Replies

8. Shell Programming and Scripting

simple sed question

hi is it possible to cut this two semicolon separated sed commands echo "string2 string3 string1" | sed s'/string1//g;s/string2//g' output: " string3 " to just one sed command without semicolon? thanks in advance funksen (10 Replies)
Discussion started by: funksen
10 Replies

9. Shell Programming and Scripting

sed - simple question

Hello My file looks like that => 12.56 have then 7888778.2566 what 44454.54545 878787.66565 if else 4445.54545455 I want to change all '.' on ',' . I'm trying to do it with sed but I don't know chow to build regular expression to change 454.4466 on 454,4466 ? (13 Replies)
Discussion started by: scotty_123
13 Replies

10. UNIX for Dummies Questions & Answers

Simple sed question

Is there an easier way to do the following: echo "|||||||" | sed 's/||/|0|/g; s/||/|0|/g' which would give the following |0|0|0|0|0|0| If it is not run twice it will not pick up the second occurance of the || and leave it empty as in echo "|||||||" | sed 's/||/|0|/g' which would give... (3 Replies)
Discussion started by: maverick
3 Replies
Login or Register to Ask a Question