Problem with sed and "F2..."


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Problem with sed and "F2..."
# 1  
Old 03-24-2010
Problem with sed and "F2..."

Hello,

i have following code lines in my ksh script:

Code:
find_str="TRENDROW|"$plaats"|"$lijn"|"
repl_str="TRENDROW|"$plaats"|"$lijn"|"$tag"|"$cbp"|"$ovl"|"$eu"|"$descr"|"

echo $find_str
echo $repl_str

sed "s/$find_str.*/$repl_str/g" trendtest.txt > trendtest_new.txt

where $tag looks something like L256, P785, F621, ...
So the $repl_str can look like:
Code:
TRENDROW|1|2|L235|REACTOR:L235.MEAS|ALMOVERLAY|%|REACTOR LEVEL|

now everything works fine, only when $tag equals something like F226 or F120 (so an F followed by a 1 or 2) i get an error stating "sed: garbage after command".
i know -f1 or -f2 is used if you want to pass a file as an argument, but here F2... is part of a string....

What can i do to make the script work for every value for $tag?

Last edited by zaxxon; 03-24-2010 at 09:36 AM.. Reason: use code tags please, ty
# 2  
Old 03-24-2010
I don't have any problem with it, I've tried to reproduce the error with several values (F123, F212..) for $tag but I don't get any errors.
# 3  
Old 03-24-2010
what i forgot to mention, i'm using MKS Toolkit to use unix scripts on a windows xp computer, maybe it's not 100% the same?
thanks for looking into it
dankjeSmilie
# 4  
Old 03-24-2010
That could probably the problem, but I don't have any experience with...
You can try it with awk but escape the pipe symbols in the find_st variable:

Code:
find_str="TRENDROW\|"$plaats"\|"$lijn"\|"
repl_str="TRENDROW|"$plaats"|"$lijn"|"$tag"|"$cbp"|"$ovl"|"$eu"|"$descr"|"

awk -v f="$find_str" -v r="$repl_str" '{sub(f,r)}1' trendtest.txt > trendtest_new.txt

# 5  
Old 03-24-2010
10 points for Franklin52! It worked!Smilie

(i just had to add an additional .* to $find_str in the awk command, like i did the sed command)

Code:
awk -v f="$find_str.*" -v r="$repl_str" '{sub(f,r)}1' trendtest.txt > trendtest_new.txt

I wasn't familiar with awk, but this is a good start to learn it. Thx.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies

2. Shell Programming and Scripting

Awk,sed : change every 2nd field ":" to "|"

Hi Experts, I have a string with colon delimited, want 2nd colon to be changed to a pipe. data: 101:8:43:4:72:14:41:69:85:3:137:4:3:0:4:0:9:3:0:3:12:3: I am trying with sed, but can change only 1 occurance: echo "101:8:43:4:72:14:41:69:85:3:137:4:3:0:4:0:9:3:0:3:12:3:" | sed 's/:/|/2'... (5 Replies)
Discussion started by: rveri
5 Replies

3. Post Here to Contact Site Administrators and Moderators

Suggestion: adding two new groups "sed" and "awk"

Majority of the questions are pertaining file/string parsing w.r.t sed or awk It would be nice to have these two as their own sub category under shell-programming-scripting which can avoid lot of duplicate posts. (1 Reply)
Discussion started by: jville
1 Replies

4. Shell Programming and Scripting

how to use "cut" or "awk" or "sed" to remove a string

logs: "/home/abc/public_html/index.php" "/home/abc/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" how to use "cut" or "awk" or "sed" to get the following result: abc abc xyz xyz xyz (8 Replies)
Discussion started by: timmywong
8 Replies

5. Shell Programming and Scripting

Using sed to find text between a "string " and character ","

Hello everyone Sorry I have to add another sed question. I am searching a log file and need only the first 2 occurances of text which comes after (note the space) "string " and before a ",". I have tried sed -n 's/.*string \(*\),.*/\1/p' filewith some, but limited success. This gives out all... (10 Replies)
Discussion started by: haggismn
10 Replies

6. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

7. Shell Programming and Scripting

Simplify Bash Script Using "sed" Or "awk"

Input file: 2 aux003.net3.com error12 6 awn0117.net1.com error13 84 aux008 error14 29 aux001.ha.ux.isd.com error12 209 aux002.vm.ux.isd.com error34 21 alx0027.vm.net2.com error12 227 dux001.net5.com error123 22 us008.dot.net2.com error121 13 us009.net2.com error129Expected Output: 2... (4 Replies)
Discussion started by: sQew
4 Replies

8. Shell Programming and Scripting

cat $como_file | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g'

hi All, cat file_name | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g' Can this be done by using sed or awk alone (4 Replies)
Discussion started by: harshakusam
4 Replies

9. UNIX for Advanced & Expert Users

A question/problem about oracle "tns listener" and "enterprise manager"

hi, I have a problem about the Oracle related components. I'm not able to find any answer yet, and waiting for your responses... Here is the configuration of my system: * an IBM P550 machine, * an AIX 5.3 running on it and * an oracle database, already installed on it. The problem (or... (1 Reply)
Discussion started by: talipk
1 Replies

10. UNIX and Linux Applications

A question/problem about oracle "tns listener" and "enterprise manager"

hi, I have * an IBM P550 machine, * an AIX 5.3 running on it and * an oracle database, already installed on it. The problem (or question of my own) is: Oracle tns listener, "CT_LISTENER", and the enterprise manager (EM) of the instance, which is uniq instance and called... (0 Replies)
Discussion started by: talipk
0 Replies
Login or Register to Ask a Question