I am confused also because my script proposal was for an input file where a number is to be substituted, as you specified in your post#1.
Now it has become a letter.?
@MadeInGermany:
the solution you provided with pattern/newval works perfectly fine.
I can modify "pattern" to be any portion of the string in each line, and the last digit will be replaced.
THe only change right now is I want to get the "pattern" and "newval" parameters required to do the sed by parsing a third variable, instead of defining them explicitly. The main problem seems to be with evaluating the vars.
Right now if I specify everything on the command line it works:
-->(im escaping the / and im definning it in single quotes ) -> info:200\/text\/name1:1.2.300 --> 8
and call sed:
input (from file):
output:
This is great. So now I will try to get the values from a new variable called $input_line
parse it: --> info:200/text/name1:1.2.300
--> 8
--> info:200/text/name1:1.2.300 --> 8
so now if I call the exact same sed command, it doesnt work:
I get:
so thats why I want to
1. escape the slash in $pattern_2
2. not sure if I need to put $pattern_2 in single quotes?
I am still a bit confused: when you say .X you seem to mean that X is a number...
The / has no special meaning in an RE (=regular expression). But my sed scripts used the / delimiter. The following is with a different delimiter, #
Perhaps the following is a little more precise, because it requires the search pattern to be placed left from the replacement area.
Now you do not need to escape the / in the search pattern (instead need to escape a #).
But you *must* escape the . character! In a RE it matches any character. For example pattern="2.0/text" would find 200/text. But pattern="2\.0/text" only finds 2.0/text.
--
You want to split the string at the last dot. You can use shell-builtins for that
@Beginner101
Note :
a) sometimes it's easier for people to understand what you need when you provide a well-chosen example of input and output file, rather than long explainations...
b) the dot before the dollar signe is useless here, but i leave it just to keep in mind that this last char matched (which is here a simple quote), is a little special and need therefore a special threatment.
---------- Post updated at 16:29 ---------- Previous update was at 13:02 ----------
Quote:
Originally Posted by Beginner101
[...]
so thats why I want to
[...]
Yep this is due to the fact that your pattern contains some / which get parsed.
In order to avoir tedious "escaping escape" gym ... you may want to give a try using ! as reference character in the s!pattern1!pattern2! expression rather than / so that the slash will be taken as litteral.
Hi,
i want to replace the following lines in such a way that if the word merge exists in first column it must replace the 3rd column as M and if parse exists in first column then the last column must P, if neither it must mark it as X. I have tried the solution using awk, but it is saying... (6 Replies)
Hi Guys!
Unix newbie here!
Have a requirement for which I have been scouting the forums for a solution but has been out of luck so far :(
I have a file which contains the following:-
TEST1|TEST2|"TEST3|1@!2"|TEST5
My sed command should result in either one the following output:-... (6 Replies)
I've got a file like so:
...lots of lines, etc.
push "route 10.8.0.0 255.255.255.0"
push "route 192.168.1.123 255.255.255.0"
...lots of lines, etc.
I want to sed find/replace the IP address in the second line, whatever it is, with a new IP address, but I don't want to touch the first line.... (5 Replies)
Hi all,
I'm trying to replace a pattern/string in about 100 files with the filename using following commands but getting nowhere:
for f in *.fa; do sed "s/^>.*/>$f/g" $f > $f_v1.fa; done
for f in *.fa; do sed 's/^>.*/>`echo $f`/' > $fa_v1.fa; done
Basically I want to change any line... (5 Replies)
I have a file with multiple lines like this:
<junk><PATTERN><junk><PATTERN><junk>
<junk><PATTERN><junk><PATTERN><junk><PATTERN><junk>
Note that
1. There might be variable number occurrences of PATTERN in a line.
2. <> are just placeholders, they do not form part of the pattern.
I need... (4 Replies)
Hi ,
My file have data like
4:ALMOST NEVER PR 1925836
5:NEVER PR W DDA 5857610
6:NEVER PR WO DDA 26770205
but i want to replace the spaces before last numric digits out put should be like this
4:ALMOST NEVER PR=1925836
5:NEVER PR W DDA=5857610
6:NEVER PR WO... (7 Replies)
myfile:
AAAaaa
BBBbbb
CCCccc
AAAeee
DDDddd
how to replace the last AAA as EEEEE using sed?
like this:
AAAaaa
BBBbbb
CCCccc
EEEEEeee
DDDddd (14 Replies)
Hello All,
I have a string "CP_STATUS OSSRC_R6_0_Shipment_R1H_CU AOM_901046 R1H_LLSV1_2008031", and I just want to extract LLSV1, but I dont get the expected result when using the sed command below.
# echo "CP_STATUS OSSRC_R6_0_Shipment_R1H_CU AOM_901046 R1H_LLSV1_2008031" | awk '{print... (4 Replies)
Hi I need to help on finding the below pattern using sed
<b><a href="/home/document.do?assetkey=x-y-abcde-1&searchclause=photo">
and replace as below in the same line on the index file.
<b><a href="/abcde.html">
thx in advance.
Mari (5 Replies)