How do I insert text with sed ?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How do I insert text with sed ?
# 1  
Old 03-05-2013
How do I insert text with sed ?

Hi I was wondering if anyone new of a solution to this problem? I need to copy a time stamp that is on a line of .text in a text file into multiple positions on the same line.
I need to insert the time stamp on the same line between every occurance of the text ".pdf_.html" right after the underscore and before the ".html"
I've tried using sed and the \1 function without much luck.
I would be very thankful if anyone was able to provide a solution.
Below is an example of the code I'm trying to use.
Code:
 sed 's/\(TIMESTAMP\)/.*.pdf_\1.html.*/g' /SubmissionForm/*.text

What this sed script does is find the one occurrence of the time stamp on the line and inserts
".pdf_.html" around it, which is sort of what I had intended but not quit, I actualy need the time stamp to be inserted between every occurance of ".pdf_.html" after the underscore and before the .html
any help would be much appreciated
thanks
# 2  
Old 03-05-2013
Code:
echo '.pdf_.html' | sed "s/pdf\_/&$timestamp/"

.pdf_Mar-05-2013-10:22:19.html


Last edited by in2nix4life; 03-05-2013 at 11:59 AM..
# 3  
Old 03-05-2013
Something like this?
Code:
timestamp=`date +%Y-%m-%d-%H-%M`
sed 's|\(\.pdf_\)\(\.html\)|\1'"$timestamp"'\2|g' /SubmissionForm/*.text

# 4  
Old 03-05-2013
Please show a sample line and what the output should look like.
# 5  
Old 03-06-2013
Your s command is almost certainly screwed up.

Using the syntax s/A/B/ why do you put .* in the B part?

You have:
Code:
s/\(TIMESTAMP\)/.*.pdf_\1.html.*/g

It would help to have example desired input / output.
# 6  
Old 03-06-2013
How do I insert text with sed ?

Maybe I should expailed myself more thoroughly. What I am trying to do is pick up a string of text from the begining of the line, an example of the string is this: "05-03-2013-08-59-16", this string is actualy a time stamp, that is associated with a number of file names that appear later on in the same line. The file names all end the same way, that is with a ".pdf_.html" I need to insert the string from the beginning of the line between the ".pdf_" and the ".html" everytime there is an occurance of ".pdf_.html"
Here is an example of the original text file:
Code:
<textarea name="file_links" value='05-03-2013-08-59-16 http://216.234.35.180/SCL_Preflight_Report_Page/1 small_format_stores_sign_tyr_5xpoints_22x28.pdf_.html http://216.234.35.180/SCL_Preflight_Report_Page/2 898611_Ped_Markham Reno_FINAL.pdf_.html'

And the following is the way I need it to look:
Code:
<textarea name="file_links" value='05-03-2013-08-59-16 http://216.234.35.180/SCL_Preflight_Report_Page/1 small_format_stores_sign_tyr_5xpoints_22x28.pdf_05-03-2013-08-59-16.html http://216.234.35.180/SCL_Preflight_Report_Page/2 898611_Ped_Markham Reno_FINAL.pdf_05-03-2013-08-59-16.html'

Also string that represents the time stamp will never be constant except for the format of numbers and dashes, and I need to perform the same operation on a number of files with changing time stamps and filenames.
The only constant will be the format of the timestamp and the position of the string: ".pdf_.html" at the end of the file names
thanks very much for all your help
# 7  
Old 03-06-2013
You mean something like this?
Code:
TS=05-03-2013-08-59-16; sed "/$TS/ s/\.pdf_\.html/.pdf_$TS.html/g" infile

or do you mean:
Code:
sed "s/\(.*value='\)\([^ ]*\)\(.*\.pdf_\)\(\.html.*\)/\1\2\3\2\4/g" file


Last edited by Scrutinizer; 03-06-2013 at 11:36 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Using sed to insert text between lines

Hello, I am trying to insert a section of text between lines in another text file. The new lines to be inserted are: abcd.efgh.zzzz=blah abcd.efgh.xxxx=blah Where N = 0 to 2 Original File: abcd.efgh.wwxx=aaaaa abcd.efgh.yyzz=bbbbb abcd.efgh.wwxx=aaaaa abcd.efgh.yyzz=bbbbb... (3 Replies)
Discussion started by: tsu3000
3 Replies

2. Shell Programming and Scripting

sed insert text 2 lines above pattern

Hi I am trying to insert a block of text 2 lines above a pattern match using sed eg #Start of file entry { } #End of file entry new bit of text has to be put in just above the } eg #Start of file entry { New bit of text } #End of file entry (7 Replies)
Discussion started by: eeisken
7 Replies

3. Shell Programming and Scripting

Insert text using sed

sed 's/$/TEST/g' will insert TEST at the end of each line. i want to insert TEST at column 64 (7 Replies)
Discussion started by: lawsongeek
7 Replies

4. Shell Programming and Scripting

sed to insert a slash and keep text

I have: /path/to/my/fixdir/MD1234567.tar I want to have: /path/to/my/fixdir/MD/1234567.tar fixdir never changes but MD does and how many numerical digits does. I want something like: /usr/bin/sed 's/fixdir\/../fixdir\/..\//' This ends up: /path/to/my/fixdir/../1234567.tar But... (3 Replies)
Discussion started by: crowman
3 Replies

5. Shell Programming and Scripting

Using sed to insert text file at first line

sed '1r file.txt' <source.txt >desti.txt This example will insert 'file.txt' between line 1 and 2 of source.txt. sed '0r file.txt' <source.txt >desti.txt gives an error message. Does anyone know how 'sed' can insert 'file.txt' before the first line of source.txt? (18 Replies)
Discussion started by: psve
18 Replies

6. Shell Programming and Scripting

sed insert text without newline

Hi, I use sed to insert text at beginning of a file. But sed inserts a newline after my text that I do not need. For example, I want to insert "foo" at the beginning of my file: > cat myfile This is first line. > sed -i '1i\foo' myfile > cat myfile foo This is first line. ... (5 Replies)
Discussion started by: tdw
5 Replies

7. Shell Programming and Scripting

Insert text with Sed (in various positions)

Hello. I'm trying to insert text in various positions and I could only do that using pipes for each position. Example: cat file | sed -e 's#\(.\{5\}\)\(.*\)#\1:\2#g' | sed -e 's#\(.\{26\}\)\(.*\)#\1:\2#g' Insert ":" at position 5 and 26. it can be done in the same sentence, without using... (4 Replies)
Discussion started by: </kida>
4 Replies

8. Shell Programming and Scripting

sed insert text at particular line

I know that sed -n '12p' file will print line 12 but how might I insert text to a specified line? thanks (2 Replies)
Discussion started by: action_owl
2 Replies

9. Shell Programming and Scripting

Need to insert new text and change existing text in a file using SED

Hi all, I need to insert new text and change existing text in a file. For that I used the below line in the command line and got the expected output. sed '$a\ hi... ' shell > shell1 But I face problem when using the same in script. It is throwing the error as, sed: command garbled:... (4 Replies)
Discussion started by: iamgeethuj
4 Replies

10. UNIX for Dummies Questions & Answers

Insert Text With Sed

Hello. Trying to insert text at line 1 and after last line of file. I have searched posts but nothing seems to work. I keep getting extra characters error or nothing gets inserted into the file. #!/bin/sh touch textfile.txt sed 'i\ Add this line before every line with WORD' textfile.txt ... (5 Replies)
Discussion started by: steveramsey
5 Replies
Login or Register to Ask a Question