Add a column to a file


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Add a column to a file
# 1  
Old 04-09-2015
Add a column to a file

Hi,
I have this data file that contains:
Code:
1	A
2	B
3	C
4	D
5	E
6	F
7	G
8	H
9	I

I want the results to be:
Code:
1	A	A
2	B	A
3	C	A
4	D	A
5	E	A
6	F	A
7	G	A
8	H	A
9	I	A
1	A	B
2	B	B
3	C	B
4	D	B
5	E	B
6	F	B
7	G	B
8	H	B
9	I	B
1	A	C
2	B	C
3	C	C
4	D	C
5	E	C
6	F	C
7	G	C
8	H	C
9	I	C
and on and on to line 9....

Many thanks!
Moderator's Comments:
Mod Comment Without CODE tags, readers can't tell that your data uses tabs instead of spaces as field delimiters.

Please format your posts as required by forum rules and stop depending on forum moderators to clean up all of your posts.

Last edited by Don Cragun; 04-09-2015 at 03:13 PM.. Reason: Add CODE tags, again.
# 2  
Old 04-09-2015
In BASH:

Code:
printf "%s\n" "-v N="{A..Z} | while read LINE
do
        awk $LINE '{ $0 = $0 "\t" V } 1' inputfile
done > outputfile

# 3  
Old 04-09-2015
Your desired results are not clear. Is this supposed to be an infinite sequence, or is it supposed to end? If it is supposed to end, where is the sequence supposed to end?
Perhaps one of the following is your desired end point:
Code:
9	I	I
9	I	Z
9	I	z
9	I	ZZZZZZZZZZZZZZZZZZZZZZ

Is the end point supposed to be determine from the input somehow?

Are you passing a parameter to your script to set the end point?

What operating system are you using?

What shell are you using?

What have you tried to do this on your own?

With well over 150 posts and help on sixty-eight other questions that you have posted to these forums, we would hope that you would have a good idea of two or three ways that a problem like this could be solved.
# 4  
Old 04-09-2015
file d1 contain:

Code:
1       A
2       B
3       C
4       D
5       E
6       F
7       G
8       H
9       I

I have this script: test.script

Code:
#!/bin/ksh

DAY=`date +%y%m%d`
H=`date +%H`
D=`date +%d`
cat d1 | while read line
do
a=$(echo $line | awk '{print $1}')
n=$(echo $line | awk '{print $2}')
awk '{print $0, $n}' d1 >> d2
done

./test.script 

cat d2

1       A 1     A
2       B 2     B
3       C 3     C
4       D 4     D
5       E 5     E
6       F 6     F
7       G 7     G
8       H 8     H
9       I 9     I
1       A 1     A
2       B 2     B
3       C 3     C
4       D 4     D
5       E 5     E
6       F 6     F
7       G 7     G
8       H 8     H
9       I 9     I
1       A 1     A
2       B 2     B
3       C 3     C
4       D 4     D
5       E 5     E
6       F 6     F
7       G 7     G
8       H 8     H
9       I 9     I
1       A 1     A
2       B 2     B
3       C 3     C
4       D 4     D
5       E 5     E
6       F 6     F
7       G 7     G
8       H 8     H
9       I 9     I
1       A 1     A
2       B 2     B
3       C 3     C
4       D 4     D
5       E 5     E
6       F 6     F
7       G 7     G
8       H 8     H
9       I 9     I
1       A 1     A
2       B 2     B
3       C 3     C
4       D 4     D
5       E 5     E
6       F 6     F
7       G 7     G
8       H 8     H
9       I 9     I
1       A 1     A
2       B 2     B
3       C 3     C
4       D 4     D
5       E 5     E
6       F 6     F
7       G 7     G
8       H 8     H
9       I 9     I
1       A 1     A
2       B 2     B
3       C 3     C
4       D 4     D
5       E 5     E
6       F 6     F
7       G 7     G
8       H 8     H
9       I 9     I
1       A 1     A
2       B 2     B
3       C 3     C
4       D 4     D
5       E 5     E
6       F 6     F
7       G 7     G
8       H 8     H
9       I 9     I
1       A 1     A
2       B 2     B
3       C 3     C
4       D 4     D
5       E 5     E
6       F 6     F
7       G 7     G
8       H 8     H
9       I 9     I

I expect:
Code:
1	A	A
2	B	A
3	C	A
4	D	A
5	E	A
6	F	A
7	G	A
8	H	A
9	I	A
1	A	B
2	B	B
3	C	B
4	D	B
5	E	B
6	F	B
7	G	B
8	H	B
9	I	B
1	A	C
2	B	C
3	C	C
4	D	C
5	E	C
6	F	C
7	G	C
8	H	C
9	I	C

on and on.....

Given that:
Code:
awk '{print $0, "A"}' d1

1	A	A
2	B	A
3	C	A
4	D	A
5	E	A
6	F	A
7	G	A
8	H	A
9	I	A

Thanks!

Last edited by Don Cragun; 04-09-2015 at 03:47 PM.. Reason: Add CODE and ICODE tags, again.
# 5  
Old 04-09-2015
Moderator's Comments:
Mod Comment If you continue to refuse to properly format your posts, you will be banned from the UNIX & Linux Forums.
# 6  
Old 04-09-2015
Hi, a builtin solution:
Code:
while read a b ; do while read xx; do echo -e "$xx\t$b"; done <d1 ; done <d1

Regards.
This User Gave Thanks to disedorgue For This Post:
# 7  
Old 04-09-2015
Wow! it works! Beautiful mind!
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Add new column from another file

Hi, I have 2 files. file1 contains by lines: hash:salt:id file2 contains by lines: username:hash:salt I would like to add a new coloumn (id) form file1 to file2. The new file should contains: username:hash:salt:id Note: file1 contains less rows than file2. I tried paste -d':' file1... (12 Replies)
Discussion started by: freeroute
12 Replies

2. Shell Programming and Scripting

Add new column in the file

Hi Team I have file as below empno,ename,sal 123,smith,1000 124,adams,2000 Required output: Using AWK empno,ename,sal,deptno 123,smith,1000 124,adams,2000 Thanks, Murali (5 Replies)
Discussion started by: bmk
5 Replies

3. Shell Programming and Scripting

Add a new column to file

I have file like this b,c 10,20 30,40 50,60 Now I want to add a new column a with fixed values for all the rows a,b,c 60,10,20 60,30,40 60,50,60 Please let me know how can we do this in unix. (4 Replies)
Discussion started by: weknowd
4 Replies

4. Shell Programming and Scripting

Help with add existing file name as new data column in new output file

Input File 1 cat S1.txt MI0043 2731 miR-1 Input File 2 cat S4.txt MI006 310 CiR-1 MI057 10 CiR-24 MI750 5 CiR-24 Desired Output File 1 cat S1.txt.out MI0043 2731 miR-1 S1.txt Desired Output File 2 cat S4.txt.out MI006 310 CiR-1 S4.txt (3 Replies)
Discussion started by: perl_beginner
3 Replies

5. Shell Programming and Scripting

How to add a column from other file?

Dear all, Lets say, I've a file a.txt containing two columns, like a1 b1 .. .. .. .. and another file b.txt containg two columns, like a1 c1 .. .. .. .. I need to put c1 column from b.txt file to the a.txt file. So, the output should be a1 b1 c1 .. .. .. .. ... (4 Replies)
Discussion started by: mkg
4 Replies

6. Shell Programming and Scripting

Add column info from one file to larger second file

Hi, long time reader, first time poster. I've done some searching so please if this is a repeated post excuse the duplicate, but what I have are two files roughly like so: File 1: A W B X C Y D Z File 2: A 1 C 2 D 3 And what I would like to get out is... (4 Replies)
Discussion started by: wallysb01
4 Replies

7. Shell Programming and Scripting

Add column to a file

Hola, How can I add a column to a existing file?? PS: The column which should be added need to be the first column and it will be a parameter from the script. Example: 1 name1 2 name2 3 name3 4 name3 Need to add parameter $file as a first column. $file is a file name with time... (6 Replies)
Discussion started by: Olivia
6 Replies

8. Shell Programming and Scripting

Need to add letters to a column and add in a new column subtracting from another column

So I have this input 1 10327 rs112750067 T C . PASS DP=65;AF=0.208;CB=BC,NCBI 1 10469 rs117577454 C G . PASS DP=2055;AF=0.020;CB=UM,BC,NCBI 1 10492 rs55998931 C T . PASS DP=231;AF=0.167;CB=BC,NCBI 1 10583 rs58108140 G A ... (3 Replies)
Discussion started by: kellywilliams
3 Replies

9. Shell Programming and Scripting

How to add a particular column alone in a file

Hi I have file which contains 5 coulmns i need to add the fifth column value and put it in the desired location in the same column. Here is the sample file.. ashop0004 SQL- 06/14/2009 06/14/2009 00:04:28 SUM ashop0004 SQL- 06/14/2009 06/14/2009 00:00:37 ... (22 Replies)
Discussion started by: cutechaps
22 Replies

10. Shell Programming and Scripting

how to add a new column in an existing file

Hi guys, Please help me if u have some solution. I have a file with three columns separated by ':' - INPUT_FILE C416722_2 : calin Dirigent : Dirigent AC4174_6 : Jac : cal_co TC4260_5 : [no : lin kite BC426302_1 : [no : calin Dirigent lin JC426540_3 : lin Pymo_bin : calin TC428_3 : no7... (4 Replies)
Discussion started by: sam_2921
4 Replies
Login or Register to Ask a Question