Solved

Append data to the end of each line in a file

Posted on 2007-11-23
16
928 Views
Last Modified: 2013-12-27
I have file called XXX

I need to appened some information to the end of each line in  file

Please provide command for that
0
Comment
Question by:sumanth_ora
  • 6
  • 5
  • 2
  • +2
16 Comments
 
LVL 40

Expert Comment

by:omarfarid
ID: 20341504
Hi,

Please try

#!/bin/sh
ed $1 << END
1,$ s/$/more data/
w
q
END

you may call the above script myshell and after you make it executable (chmod +x myshell), you may use it as:

./myshell myfile
0
 
LVL 48

Expert Comment

by:Tintin
ID: 20341962
sed "s/$/some new data/" file >file.new && mv file.new file
0
 
LVL 84

Expert Comment

by:ozo
ID: 20342326
perl -i -pe 's/$/some new data/' XXX

perl -i -lpe '$_.="some new data"' XXX

some sed implementations may also have a -i switch
0
DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

 
LVL 51

Expert Comment

by:ahoffmann
ID: 20343002
awk '{print $0" some new data"}' XXX
sed -e 's/.*/&" some new data"/' XXX
# just some more ...
0
 

Author Comment

by:sumanth_ora
ID: 20343325
awk '{print $0" $File_Date"}'

When I use above awk it's not picking value it's appending $File_Date to the end of each line

I want the acuval value to be append

here is the value  for $File_Date

,20071231 or |12_NOV_2007


===============================================================

sed "s/$/$File_Date/" file >file.new


I am getting message  for the above sed execution

sed garbled & makeing size of file.new as 0




0
 
LVL 40

Expert Comment

by:omarfarid
ID: 20343339
Hi,

did you try the script provided?

0
 

Author Comment

by:sumanth_ora
ID: 20343371
Instead of wring in one more script I am trying like this

 ed $OutputFilename1<< END
             1,$ s/$/$File_Date/
             w
             q
             END
             
             cat OutputFilename1 >>$OutputFilename


I got the following err

syntax error at line 406 : `<<' unmatched
0
 
LVL 40

Expert Comment

by:omarfarid
ID: 20343391
Hi,

The END should be at the beginning of the line (no space before it). Same for remaining commands 1,$ w & q

What is $File_Date ? is it an env variable defined in the script?

0
 

Author Comment

by:sumanth_ora
ID: 20343426
thats is the value i am getting dynamically
value might be ,11/22/2007 or |12_Nov_2007

Now give me example for ed using file _date
0
 
LVL 40

Expert Comment

by:omarfarid
ID: 20343444
Hi,

OK

Now the data you are inserting or appending has slashes (/) in it, which confuse ed or sed. So use the other format with (_)

Now, the example

File_Date=12_Nov_2007
export File_Date
ed $OutputFilename1<< END
1,$ s/$/$File_Date/
w
q
END
0
 

Author Comment

by:sumanth_ora
ID: 20343472
I can't change the format...
requirement is like that
0
 
LVL 40

Expert Comment

by:omarfarid
ID: 20343487
Hi,

File_Date='11\/22\/2007'
export File_Date
ed $OutputFilename1<< END
1,$ s/$/$File_Date/
w
q
END

Please note the single quotes and the back slashes
0
 

Author Comment

by:sumanth_ora
ID: 20343543
but you are providing hard coded value..
0
 
LVL 40

Accepted Solution

by:
omarfarid earned 500 total points
ID: 20343594
Hi,

Yes, but in your case you need to reformat the data, e.g. add the line below before ed command

File_Date=`echo $File_Date | awk -F"/" '{print $1 "\/" $2 "\/" $3}'`
0
 
LVL 51

Expert Comment

by:ahoffmann
ID: 20344968
> .. value might be ,11/22/2007 or |12_Nov_2007
that's the reason for the "sed garbled command", simply remove the / for sed's s by something else, i.e.
  s:$:31/11/2007:

awk '{print $0"'"$File_Date"'"}' XXX

but you accepted something else already ...
0
 
LVL 48

Expert Comment

by:Tintin
ID: 20346724
knowing the data is important.  You could have done

sed "s#\$#$File_Date#/" file >file.new && mv file.new file
0

Featured Post

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
excel file 5 72
Batch Login Script - Update default homepage 8 49
Active DirectoryScript to change the Pager Field 1 60
add some character at the end of line in vi 7 78
It is a general practice to get rid of old user profiles on a computer  in a LAN environment. As I have been working with a company in a LAN environment where users move from one place to some other place at times. This will make many user profil…
Every server (virtual or physical) needs a console: and the console can be provided through hardware directly connected, software for remote connections, local connections, through a KVM, etc. This document explains the different types of consol…
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

785 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question