Solved

Append data to the end of each line in a file

Posted on 2007-11-23
16
927 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
 
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
DevOps Toolchain Recommendations

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

 

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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Using libpcap/Jpcap to capture and send packets on Solaris version (10/11) Library used: 1.      Libpcap (http://www.tcpdump.org) Version 1.2 2.      Jpcap(http://netresearch.ics.uci.edu/kfujii/Jpcap/doc/index.html) Version 0.6 Prerequisite: 1.      GCC …
Background Still having to process all these year-end "csv" files received from all these sources (including Government entities), sometimes we have the need to examine the contents due to data error, etc... As a "Unix" shop, our only readily …
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 fourth video of the Xpdf series, we discuss and demonstrate the PDFinfo utility, which retrieves the contents of a PDF's Info Dictionary, as well as some other information, including the page count. We show how to isolate the page count in a…

864 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

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now