sed garbled error message in bash shell


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed garbled error message in bash shell
# 1  
Old 11-27-2012
sed garbled error message in bash shell

Sed garbled error. Cannot determine why the sed command to insert a line at the beginning of a file will not work on declared variables.

Code:
outfile='DAR.V2.2012115.1.CSV'

testfile='totality_request.sql'

header_prefix='DATA FILE'

no_ext_file=`echo $outfile |sed 's/\(.*\)..../\1/'`

echo $no_ext_file

header_file="$header_prefix $no_ext_file"

echo $header_file

trailer_prefix='DATA RECORDS'

trailer_records=`wc -l $outfile| awk '{print $1}'`

echo $trailer_records

trailer_file="$trailer_prefix $trailer_records"

echo $trailer_file

sed "1i\ 
$header_file $outfile" > outfile_new

Here is the output from bash shell:

Code:
bash -x test3.sh
+ outfile=DAR.V2.2012115.1.CSV
+ testfile=totality_request.sql
+ header_prefix='DATA FILE'
++ echo DAR.V2.2012115.1.CSV
++ sed 's/\(.*\)..../\1/'
+ no_ext_file=DAR.V2.2012115.1
+ echo DAR.V2.2012115.1
DAR.V2.2012115.1
+ header_file='DATA FILE DAR.V2.2012115.1'
+ echo DATA FILE DAR.V2.2012115.1
DATA FILE DAR.V2.2012115.1
+ trailer_prefix='DATA RECORDS'
++ wc -l DAR.V2.2012115.1.CSV
++ awk '{print $1}'
+ trailer_records=2
+ echo 2
2
+ trailer_file='DATA RECORDS 2'
+ echo DATA RECORDS 2
DATA RECORDS 2
+ sed '1i\ 
DATA FILE DAR.V2.2012115.1 DAR.V2.2012115.1.CSV'
sed: command garbled: 1i\

Moderator's Comments:
Mod Comment
Please use code tags when posting data and code samples!

Last edited by vgersh99; 11-27-2012 at 01:51 PM.. Reason: code tags, please!
# 2  
Old 11-27-2012
In your sample there seems to be a space behind the \ that should not be there. The backslash should be the last character on the line.
# 3  
Old 11-27-2012
I removed the trailing space and checked to make sure there were not others with a :set list, but the same message returned.

Code:
outfile='DAR.V2.2012115.1.CSV'$
$
testfile='totality_request.sql'$
$
header_prefix='DATA FILE'$
$
no_ext_file=`echo $outfile |sed 's/\(.*\)..../\1/'`$
$
echo $no_ext_file$
$
header_file="$header_prefix $no_ext_file"$
$
echo $header_file$
$
trailer_prefix='DATA RECORDS'$
$
trailer_records=`wc -l $outfile| awk '{print $1}'`$
$
echo $trailer_records$
$
trailer_file="$trailer_prefix $trailer_records"$
$
echo $trailer_file$
$
sed "1i\$
$header_file $outfile" > outfile_new$

It seems that it wants to treat the 1i as text and not part of the command?

Code:
smenago@eqewrslhp01$ bash -x test3.sh
+ outfile=DAR.V2.2012115.1.CSV
+ testfile=totality_request.sql
+ header_prefix='DATA FILE'
++ echo DAR.V2.2012115.1.CSV
++ sed 's/\(.*\)..../\1/'
+ no_ext_file=DAR.V2.2012115.1
+ echo DAR.V2.2012115.1
DAR.V2.2012115.1
+ header_file='DATA FILE DAR.V2.2012115.1'
+ echo DATA FILE DAR.V2.2012115.1
DATA FILE DAR.V2.2012115.1
+ trailer_prefix='DATA RECORDS'
++ wc -l DAR.V2.2012115.1.CSV
++ awk '{print $1}'
+ trailer_records=2
+ echo 2
2
+ trailer_file='DATA RECORDS 2'
+ echo DATA RECORDS 2
DATA RECORDS 2
+ sed '1iDATA FILE DAR.V2.2012115.1 DAR.V2.2012115.1.CSV'
+ sed 'DATA RECORDS 2'
sed: command garbled: 1iDATA FILE DAR.V2.2012115.1 DAR.V2.2012115.1.CSV
sed: command garbled: DATA RECORDS 2


Last edited by smenago; 11-27-2012 at 06:10 PM..
# 4  
Old 11-27-2012
Try:
Code:
sed "1i\\
$header_file
" "$outfile" > outfile_new

# 5  
Old 11-28-2012
Worked. Thanks a bunch. I need to add a trailer to this file as well and tried to pipe in the 2nd sed command, but received the same error.
Code:
cat test3.sh
outfile='DAR.V2.2012115.1.CSV'

testfile='totality_request.sql'

header_prefix='DATA FILE'

no_ext_file=`echo $outfile |sed 's/\(.*\)..../\1/'`

echo $no_ext_file

header_file="$header_prefix $no_ext_file"

echo $header_file

trailer_prefix='DATA RECORDS'

trailer_records=`wc -l $outfile| awk '{print $1}'`

echo $trailer_records

trailer_file="$trailer_prefix $trailer_records"

echo $trailer_file

     sed "1i\\
$header_file
" "$outfile" | sed "$a\\
$trailer_file
" > outfile_new

Below is the sed garbled error again.

Code:
bash -x test3.sh
+ outfile=DAR.V2.2012115.1.CSV
+ testfile=totality_request.sql
+ header_prefix='DATA FILE'
++ echo DAR.V2.2012115.1.CSV
++ sed 's/\(.*\)..../\1/'
+ no_ext_file=DAR.V2.2012115.1
+ echo DAR.V2.2012115.1
DAR.V2.2012115.1
+ header_file='DATA FILE DAR.V2.2012115.1'
+ echo DATA FILE DAR.V2.2012115.1
DATA FILE DAR.V2.2012115.1
+ trailer_prefix='DATA RECORDS'
++ wc -l DAR.V2.2012115.1.CSV
++ awk '{print $1}'
+ trailer_records=2
+ echo 2
2
+ trailer_file='DATA RECORDS 2'
+ echo DATA RECORDS 2
DATA RECORDS 2
+ sed '1i\
DATA FILE DAR.V2.2012115.1
' DAR.V2.2012115.1.CSV
+ sed '\
DATA RECORDS 2
'
sed: command garbled: \
DATA RECORDS 2

# 6  
Old 11-28-2012
Try: sed "\$a...
This User Gave Thanks to Scrutinizer For This Post:
# 7  
Old 11-29-2012
Worked. Appreciate the help.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Command garbled when using sed

Hi everyone, Can anyone help me in question below? I want to cron a job to add partition every month but get the error sed: command garbled: s/YYYYMM/ . > echo $YYYYMON_NEW 201304 > echo $YYYYMON_OLD 201208 > echo $YYYY_MM_NEW 2013-05 This is my base script: ALTER TABLE STS.ADMIN ADD... (1 Reply)
Discussion started by: fenocean
1 Replies

2. Shell Programming and Scripting

sed help - Command garbled

Hi, First post for a noob so please go easy with me :) I have a XML block that is originally like this: <SETNAME>somecrap/THIS</SETNAME> and I would like it be replaced with, in the original file: <SETNAME>THIS</SETNAME> I tried to use: sed... (4 Replies)
Discussion started by: zhuanyi
4 Replies

3. Shell Programming and Scripting

sed: command garbled error

Hi all, Suppose that I want to update the db.password entry in the below properties file, db.username=admin db.password=qhKkBno2U5GEq5k/dnmGPA== //I want this line to be replaced by: "db.password=abc/123/" db.host=server db.port=22 db.sid=database However when... (2 Replies)
Discussion started by: isaacniu
2 Replies

4. Shell Programming and Scripting

Sed command garbled question

for j in $(cat ${list_B}) do to_replace_2=$(grep $j ${useralias}_2) sed "s/^${j}/${to_replace_2}/p" ${entries} > ${entries}_2 mv ${entries}_2 ${entries} done Hi, I've the above sed command running in a script. Its basically looping through a file and replacing its beginning of line... (8 Replies)
Discussion started by: Jazmania
8 Replies

5. Shell Programming and Scripting

sed command garbled error

sed: command garbled: s/ri="*"/ri=" what i did is you can see below sed "s/ri=\"*\"/ri=\"$newri\"/" $2 > output how to solve this (2 Replies)
Discussion started by: pasricha.kunal
2 Replies

6. Shell Programming and Scripting

sed: command garbled

Hi, I have a file1 as : A=/home/user B=/home/user1 C=/home/user2 D=/home/aacsms E=/home/user1/temp F=/home/user1/area1 and my script as: a=`cat /home/aacsms7/file1 | grep -i e` b=`user2` sed 's/'$a'/"E=/home/'$b'/temp"/g' < file1 > file2 sed: command garbled:... (3 Replies)
Discussion started by: yesmani
3 Replies

7. Shell Programming and Scripting

Sed: command garbled :s/

Hi, I really need some help, I am using a very basic script to proess a text file. This script has been used many times but all of a sudden all on it's own it's stopped working. The line in the script is: sed 's/ //g' $ORGFILE > $NEWFILE and the error is Sed: command garbled :s/ All... (3 Replies)
Discussion started by: heidi.lightfoot
3 Replies

8. Shell Programming and Scripting

sed: command garbled error.....

Dear friends, please give me the solution to the following query. If a file contains multiple tags of same name, then how to get the required string between the tags, in which the string begins with "W/X" i.e., file1.txt contains following text(please note that all the following tags are in... (1 Reply)
Discussion started by: swamymns
1 Replies

9. Shell Programming and Scripting

sed: command garbled

Im getting this error message when trying to substitute filepaths in a sed search and replace string #!/usr/bin/ksh ORACLE_SID=PH3 ORACLE_ADMIN=/data01/app/oracle/admin/$ORACLE_SID DATAFILE_DIR=/asterisk/oradata/$ORACLE_SID sed -e s/DBNAME/$ORACLE_SID/g < initPH2.ora | sed -e... (1 Reply)
Discussion started by: blakmk
1 Replies

10. Shell Programming and Scripting

Garbled Sed w/variables

I'm trying to get a partial file path by passing the part I want removed to sed. Sed gets garbled when I try multiple directories (i.e. because of the extra slash). For example: FULLFILEPATH="usr/local/bin" STRIPDIR="usr" PARTFILEPATH=`echo $FULLFILEPATH | sed s/\${STRIPDIR}//` Gives me... (3 Replies)
Discussion started by: bergerj3
3 Replies
Login or Register to Ask a Question