Concatenating values in a File


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Concatenating values in a File
# 1  
Old 10-08-2007
Bug Concatenating values in a File

Hi All,

I have a ',' delimited file and i would like concatenate a new value at a specific column.

Example :-
xXXX,XYZ,20071005,ABC,DEF,123
xXXX,XYZ,20071005,ABC,DEF,123
xXXX,XYZ,20071005,ABC,DEF,123


The output that i want is
xXXX,XYZ,20071005001,ABC,DEF,123
xXXX,XYZ,20071005002,ABC,DEF,123
xXXX,XYZ,20071005003,ABC,DEF,123
........
xXXX,XYZ,20071005010,ABC,DEF,123
xXXX,XYZ,20071005011,ABC,DEF,123
and so .... on....

As you see the only difference is in the Column # 3 where i want to add 001, 002, 003 .... till the end of file [ in the above example there are 11 records so last updated value is 20071005011 ], however all other values should remain the same.

Please let me know if you have any doubts about the query.

and thanks for your time.Smilie
Amit
# 2  
Old 10-08-2007
Code:
#assumption: only till 999
awk 'BEGIN{OFS=FS=",";c=1}
    { 
     n=sprintf("%03d",c++)
     $3=$3n     
    }
    1' "file"

# 3  
Old 10-08-2007
Quote:
Originally Posted by ghostdog74
Code:
#assumption: only till 999
awk 'BEGIN{OFS=FS=",";c=1}
    { 
     n=sprintf("%03d",c++)
     $3=$3n     
    }
    1' "file"

Hi, can you explain how it work i am not able to understand and also not able to us it... Please help
Thanks for your time.
Amit
# 4  
Old 10-08-2007
Quote:
Originally Posted by amitkhiare
Hi, can you explain how it work i am not able to understand and also not able to us it... Please help
Thanks for your time.
Amit
1) 'BEGIN{OFS=FS=",";c=1} #set output and input field separator to ",", initialize c variable to 1. this will be used for counting up
2) n=sprintf("%03d",c++) # string formatting. precede the number by 0's and fix it at length 3. Then assign the value to n eg 001, 002, till 999
3)$3=$3n #append 001 , 002 etc to field 3, which is the field with date, eg 20071005

which platform are you in? i am using GNU awk.
# 5  
Old 10-09-2007
awk

Hi,
This should be also ok.

code:
Code:
awk 'BEGIN{FS=","}
{
print $1","$2","$3*1000+NR","$4","$5","$6
}' filename

# 6  
Old 10-09-2007
Quote:
Originally Posted by ghostdog74
1) 'BEGIN{OFS=FS=",";c=1} #set output and input field separator to ",", initialize c variable to 1. this will be used for counting up
2) n=sprintf("%03d",c++) # string formatting. precede the number by 0's and fix it at length 3. Then assign the value to n eg 001, 002, till 999
3)$3=$3n #append 001 , 002 etc to field 3, which is the field with date, eg 20071005

which platform are you in? i am using GNU awk.
Hi,

I am using this on Solaris Box and i tried your solution how ever the output is different and it is adding the 001 in the front side, not sure why. So the output is 00171005 for "20071005".

Will this be case of different platform...
# 7  
Old 10-09-2007
try nawk on Solaris
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Concatenating sequence length to another file

I want to add the sequence length of File_1.fa and File _2.fa to form the form the fifth column in File_1_pos.txt and File_2_poa.txt respectively using awk and bash. Can anyone help me? Thanks Get sequence length of each file File_1.fa File_2.fa Add the sequence length to be the third... (6 Replies)
Discussion started by: Ibk
6 Replies

2. UNIX for Dummies Questions & Answers

ConCATenating binaries but excluding last bytes from each file

Hi there, shameful Linux Newbie here :p I was wondering if you could help with my problem... I have plenty of files I'd like to concatenate. I know how to basically use cat command but that won't be enough from what I need : excluding the last xx bytes from files before assembling since there's... (4 Replies)
Discussion started by: grolido
4 Replies

3. Shell Programming and Scripting

Concatenating 3 files into a single file

I have 3 files File1 C1 C2 c3 File 2 C1 c2 c3 File 3 C1 c2 c3 Now i want to have File1 as C1 c2 c3 I File2 as C1 c2 c3 O File3 as c1 c2 c3 D and these 3 files should be concatenated into a single file how can it be done in unix script? (3 Replies)
Discussion started by: Codesearcher
3 Replies

4. Shell Programming and Scripting

Concatenating contents of a file with members in a directory

Hi, I have a unix file with the below structure - CustId1 CustName1 CustPhn1 /u/home/xmldata/A000001 CustId2 CustName2 CustPhn2 /u/home/xmldata/A000002 CustId3 CustName3 CustPhn3 /u/home/xmldata/A000003 Then I have another unix directory /u/home/xmldata This directory has... (3 Replies)
Discussion started by: Simanto
3 Replies

5. Shell Programming and Scripting

bash -- concatenating values from variables

Hi This is a simple one but I got a lost in translation when doing. What I want to do, given both variables in the example below, to get one value at the time from both variables, for example: 1:a 2:b etc... I need to get this in bash scripting code: varas="1 2 3 4" varbs="a b c d"... (4 Replies)
Discussion started by: ranmanh
4 Replies

6. Shell Programming and Scripting

Adding values concatenating values

I have the following script in a shell # The start of a filename file=$(ls -tr $EMT*.dat | tail -1) # Select the latest file echo $file file_seq=$( < /u02/sct/banner/bandev2/xxxxxx/misc/EFTSQL.dat) echo $file_seq file2 = '$file_seq + 1' echo $file2 It is reading a file EFTSQL.dat... (3 Replies)
Discussion started by: rechever
3 Replies

7. Shell Programming and Scripting

Concatenating File and String for Sendmail

I want o add a variable in addition to a file which will be send with sendmail. I have problems to find the correct syntax for concatenating this variable called $MyVariable. sendmail mai@domain.com </tmp/errormessage.txt $MyVariable] Thanks for your help! (2 Replies)
Discussion started by: high5
2 Replies

8. Shell Programming and Scripting

Concatenating column values with unique id into single row

Hi, I have a table in Db2 with data say id_1 phase1 id_1 phase2 id_1 phase3 id_2 phase1 id_2 phase2 I need to concatenate the values like id_1 phase1,phase2,phase3 id_2 phase1,phase2 I tried recursive query but in vain as the length of string to be concatenated in quite long. ... (17 Replies)
Discussion started by: jsaravana
17 Replies

9. UNIX for Dummies Questions & Answers

Concatenating arrays cell values in shell scripting

Hi All, I want to concatenate the array cell values and form a string.. Is it possible? for ex. I have an array word_array contains d u m b and after concatenating the string shld be 'dumb' thanks (2 Replies)
Discussion started by: mathur
2 Replies

10. Shell Programming and Scripting

Concatenating the two lines in a file

hi My requirement is i have a file with some records like this file name ::xyz a=1 b=100,200 ,300,400 ,500,600 c=700,800 d=900 i want to change my file a=1 b=100,200,300,400 c=700,800 d=900 if record starts with " , " that line should fallows the previous line.please give... (6 Replies)
Discussion started by: srivsn
6 Replies
Login or Register to Ask a Question