Simple sed??


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Simple sed??
# 1  
Old 08-12-2004
Simple sed??

I am obviously missing something here, but the following simple command is giving me problems:

sed 'i\extratext' filename.txt

I receive "sed: command garbled: i\extratext' "

Any suggestions?

Thanks.
# 2  
Old 08-12-2004
You need to enter the command like this

Code:
sed 'i\<ENTER>
extratext' filename.txt

i.e. press ENTER after the i\ bit.

Newer GNU sed will also understand sed 'i extratext' filename.txt

Cheers
ZB
# 3  
Old 08-12-2004
Thanks zazzy! That was the problem. Guess I should have looked at the man pages closer.

The insert works fine with static text, but I would like to insert a variable. I'm essentially trying to get a directory listing and insert the filename above every row in the respective file.

for file in dir1/*.*
do
filename=${file##*/}
sed "i\
${filename}" $file >> combined.txt
done

This gives the following:
sed: command garbled: file1.txt

In replaced the double quotes (") in the code above with just single quotes (') simply inserts ${filename}.

Any way to provide a variable name to the insert command?

Thanks.
# 4  
Old 08-12-2004
Thanks zazzy! That was the problem. Guess I should have looked at the man pages closer.

The insert works fine with static text, but I would like to insert a variable. I'm essentially trying to get a directory listing and insert the filename above every row in the respective file.

for file in dir1/*.*
do
filename=${file##*/}
sed "i\
${filename}" $file >> combined.txt
done

This gives the following:
sed: command garbled: file1.txt

In replaced the double quotes (") in the code above with just single quotes (') simply inserts ${filename}.

Any way to provide a variable name to the insert command?

Thanks.
# 5  
Old 08-12-2004
Try this....

Code:
filename=${file##*/}
sed 'i\
'${filename} $file >> combined.txt

Notice where the single quotes have been placed

Cheers
ZB
# 6  
Old 08-12-2004
Awesome zazzy!!

I would have thought the single quote would go after the variable name, but apparently not. Guess that's what being new at sed gets ya! What's the rationale for putting the single quote before the variable name?

Thanks again!!
# 7  
Old 08-12-2004
If the single quote was after the variable name, then it wouldn't get evaluated. Keeping the variable, in essence, unquoted, allows it to be evaluated by the shell before the sed command uses the value.

Cheers
ZB
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

sed - simple qx

Im usind se as follows, sed 's/**** DRAFT ****/ /' a.lst > b.lst '**** DRAFT ****' in a.lst goes to' ****' in b.lst Does anyone know the right syntax? Thanks!! ---------- Post updated at 11:02 AM ---------- Previous update was at 11:00 AM ---------- ... (4 Replies)
Discussion started by: ttilsch
4 Replies

2. Shell Programming and Scripting

Simple sed command

I have some troubles with this: insert (at the beginning of line) character "#" from line 5 to line 15 (3 Replies)
Discussion started by: aspire
3 Replies

3. Shell Programming and Scripting

simple sed

Hello Experts, I am being silly here and just need someone to point out what the silliness is I have a bunch of lines that are 12343 words here that can chage (hat:98-345) more word and numbers here I just want to pick out the numbers after "hat:" which is in every line. I have been... (8 Replies)
Discussion started by: gobi
8 Replies

4. 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

5. Shell Programming and Scripting

Simple SED edit

I have output like the following: B D 20070116095820001 N D S0000579.LOG S0000582.LOG B D 20070116095750001 N D S0000574.LOG S0000576.LOG B D 20070116095734001 N D S0000570.LOG S0000573.LOG B D 20070116095705001 N D S0000569.LOG S0000569.LOG B D ... (5 Replies)
Discussion started by: rdudejr
5 Replies

6. UNIX for Dummies Questions & Answers

Simple sed command

Hi, I have the following file: --# --#line1 --#line2 --#line3 --# --#line4 --#line5 and I want to use something like: sed 's/--#/newline/g' file > newfile to substitute the lines containing only '--#', but when I try, it replaces every instance of '--#' with 'newline' and I... (7 Replies)
Discussion started by: Dave724001
7 Replies

7. UNIX for Dummies Questions & Answers

Simple Sed

Hello. Just trying to write this line to an empty file. CAT shows nothing was written. Any suggestions or answers? #!/bin/bash -x THIS=FIRSTLINE sed '1w '$THIS'' testfile cat testfile Thank you. (2 Replies)
Discussion started by: steveramsey
2 Replies

8. Shell Programming and Scripting

probably simple SED-command ...

Hello, I've got a problem with SED. It's my intention to shorten a file path (removing the file name) with the help of SED. Something like: tmp\folder1\folder2\blah.txt has to be transformed to tmp\folder1\folder2\. I suppose, it's on the tip of my tongue. Perhaps it's close to: sed... (2 Replies)
Discussion started by: sysadv
2 Replies

9. UNIX for Dummies Questions & Answers

simple sed query

hi, i would like to replace a string in a series of files with another string, without outputting to new files. is this possible? i've tried using sed, and started by trying to alter the contents of one file... sed 's/string1/string2/g' file.txt but while this does the replacement on... (2 Replies)
Discussion started by: schmark
2 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