Visit Our UNIX and Linux User Community


adding a column


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers adding a column
# 1  
Old 10-07-2009
adding a column

Hi everybody,

I've got a file with 36074 fields. I need to insert an additional new columns 2,3,4 and 5 after the first field. The columns to insert are the same for all the lines: it's "1" doe the new field 2 and "0" for the rest. I did have a look in the forum and the suggested solution I found was something like this:

Code:
awk 'BEGIN {OF=OFS="\t"} {print $1, "1", "0", "0","0", $2, $3, $4}' file1 > file2

In this example the original file has only 4 fields, but I can't type all the 36074 fields :-(

Any suggestion would be greatly appreciated!
# 2  
Old 10-07-2009
Code:
awk 'BEGIN{FS=OFS="\t"}{$1=$1 "\t1\t0\t0\t0"}1' file1 > file2

# 3  
Old 10-07-2009
Assuming tab separated fields:

Code:
awk '$1 = $1"1\t0\t0\t0"' OFS='\t' infile

# 4  
Old 10-07-2009
Many thanks Radulov!
I've tried it out and there're some problems:
1. the added column at the field 2 appears exactly after the first column, there's no separator (of any kind);
2. some lines don't have an entry for each column, so those just jumped to forward

Example:

my old file:

Code:
a b c d
e    f g
c      e
t y u o

new file:
Code:
a1 0 0 0 b c d
e1 0 0 0 f g
c1 0 0 0 e
t1 0 0 0 y u o

Many thanks in advance for any ideas!

---------- Post updated at 10:26 AM ---------- Previous update was at 10:10 AM ----------

I've just tried out the command posted by Danmero and it works!
Many, many thanks for your kind help!
# 5  
Old 10-07-2009
Try:

Code:
sed 's/^[^ ]* /&1 0 0 0 /' infile


Last edited by radoulov; 10-07-2009 at 03:18 PM.. Reason: corrected: \& -> &
# 6  
Old 10-07-2009
Thanks Radulov!
Unfortunately, this code adds 1 only and there're no columns 3,4,5 with zeros. Sorry :-(
# 7  
Old 10-07-2009
Quote:
Originally Posted by zajtat
Code:
a b c d
e    f g
c      e
t y u o

new file:
Code:
a1 0 0 0 b c d
e1 0 0 0 f g
c1 0 0 0 e
t1 0 0 0 y u o

Code:
# cat file
a b c d
e    f g
c      e
t y u o
# awk '{$1=$1 "1 0 0 0"}1' file
a1 0 0 0 b c d
e1 0 0 0 f g
c1 0 0 0 e
t1 0 0 0 y u o

 

Previous Thread | Next Thread
Test Your Knowledge in Computers #804
Difficulty: Medium
Statistical signal processing is an approach which processes signals as stochastic processes, utilizing their statistical properties to perform signal processing tasks.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Adding a column

Hello , My requirement is to add additional column sequentially to a text file based on the column value - i/p file id1|varchar id2|varchar id3|number id4|number id5|date id6|date --------------------------------------- o/p file colv1|id1 (if second column value is varchar then... (3 Replies)
Discussion started by: Pratik4891
3 Replies

2. Shell Programming and Scripting

Special column adding

Hi Team, I would like to add two dummy columns at the end of the file. I know how to add the columns using awk . Here is my problem. we have bit strange delimiter when I od -bc it shows 244 as its binary value. 0002200 060 244 060 244 060 244 066 065 244 060 244 244 012 0... (1 Reply)
Discussion started by: gvkumar25
1 Replies

3. Shell Programming and Scripting

Adding column

I have input CSV files as TS DS_WKLDNM InterfaceSpeed 29/07/2014 20:00:00 xxx112/1/18 10000000000 29/07/2014 09:00:00 xxx112/1/19 10000000000 29/07/2014 21:00:00 xxx112/1/2 10000000000 29/07/2014 20:00:00 xxx112/1/20 10000000000 29/07/2014... (10 Replies)
Discussion started by: Moon1234
10 Replies

4. Shell Programming and Scripting

Adding values of a column based on another column

Hello, I have a data such as this: ENSGALG00000000189 329 G A 4 2 0 ENSGALG00000000189 518 T C 5 1 0 ENSGALG00000000189 1104 G A 5 1 0 ENSGALG00000000187 3687 G T 5 1 0 ENSGALG00000000187 4533 A T 4 2 0 ENSGALG00000000233 5811 T C 4 2 0 ENSGALG00000000233 5998 C A 5 1 0 I want to... (3 Replies)
Discussion started by: Homa
3 Replies

5. Shell Programming and Scripting

Adding of two column values

Hi cat /tmp/xx.txt 1 4 1 5 1 6 2 1 2 1 2 1 i want to add the values of 2nd column resepect to 1st column values..for 1 in 1st column i need sum of all the values in 2nd column ..pls tell me hw to do it?? (8 Replies)
Discussion started by: Aditya.Gurgaon
8 Replies

6. Shell Programming and Scripting

Adding a specified value to a specified column - awk?

Hi everyone! I sometimes need to do some simple arithmetics, like adding a number to a certain column of a file. So I wrote a small function in the .bashrc file, which looks like this shifter() { COL=$1 VAL=$2 FILE=$3 cp $FILE $FILE.shifted awk 'NF==4 {$(( $COL )) = $(( $COL ))... (6 Replies)
Discussion started by: radudownload
6 Replies

7. UNIX for Dummies Questions & Answers

Rename a header column by adding another column entry to the header column name

Hi All, I have a file example.csv which looks like this GrpID,TargetID,Signal,Avg_Num CSCH74_1_1,2007,61,256 CSCH74_1_1,212007,647,679 CSCH74_1_1,12007,3,32 CSCH74_1_1,207,299,777 I want the output as GrpID,TragetID,Signal-CSCH74_1_1,Avg_Num CSCH74_1_1,2007,61,256... (1 Reply)
Discussion started by: Vavad
1 Replies

8. Shell Programming and Scripting

Rename a header column by adding another column entry to the header column name URGENT!!

Hi All, I have a file example.csv which looks like this GrpID,TargetID,Signal,Avg_Num CSCH74_1_1,2007,61,256 CSCH74_1_1,212007,647,679 CSCH74_1_1,12007,3,32 CSCH74_1_1,207,299,777 I want the output as GrpID,TragetID,Signal-CSCH74_1_1,Avg_Num CSCH74_1_1,2007,61,256... (4 Replies)
Discussion started by: Vavad
4 Replies

9. Shell Programming and Scripting

Adding column

Hello, I'm struggling with the following problem in sh script: Adding a column to the right-end of a file ("master-file": non-constant column number, tab and linux formatted) where the column is the 4th one of file1 (space and DOS formatted) Changing the header of column 4 of file 1 at the... (4 Replies)
Discussion started by: lco
4 Replies

10. UNIX for Advanced & Expert Users

Adding a column of numbers

Hello, I have a file, and one column has both positive and negative numbers. Does anyone know how I can calculate the total of all the values (i.e, +ve and -ve). eg: col1 col2 col3 data 23 data data 76 data data -30 data Thanks Khoom (1 Reply)
Discussion started by: Khoomfire
1 Replies

Featured Tech Videos