Adding a column


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Adding a column
# 1  
Old 12-07-2015
Adding a column

Hello ,

My requirement is to add additional column sequentially to a text file based on the column value -

i/p file

Code:
id1|varchar
id2|varchar
id3|number
id4|number
id5|date
id6|date

---------------------------------------
o/p file

colv1|id1 (if second column value is varchar then first value is colv then sequence)
similarly
colv2|id2
coln1|id3(if second column value is number then first value is coln then sequence)
similarly
coln2|id4
cold1|id5(if second column value is date then first value is cold then sequence)
similarly
cold2|id6


so the o/p will be

Code:
colv1|id1
colv2|id2
coln1|id3
coln2|id4
cold1|id5
cold2|id6

Please suggest , thanks!!

Last edited by Scrutinizer; 12-07-2015 at 04:16 PM.. Reason: CODE TAGS
# 2  
Old 12-07-2015
With (Posix-) shell internals
Code:
nv=0; nn=0; nd=0; while IFS="|" read c1 c2
do
  case $c2 in
  (varchar) x=v; seq=$((nv+=1));;
  (number) x=n; seq=$((nn+=1));;
  (date) x=d; seq=$((nd+=1));;
  (*) x=""; seq=0;;
  esac
  echo "col$x$seq|$c1"
done < input


Last edited by MadeInGermany; 12-08-2015 at 08:57 AM.. Reason: separate counters
This User Gave Thanks to MadeInGermany For This Post:
# 3  
Old 12-07-2015
Try:
Code:
awk '{s=substr($2,1,1); print "col" s (++A[s]), $1}' FS=\| OFS=\| file

# 4  
Old 12-08-2015
A Perl alternative:

Code:
perl -ple 's/^(.*)\|(\w).*/"col$2".++$n{$2}."|$1"/e' pratik4891.file
colv1|id1
colv2|id2
coln1|id3
coln2|id4
cold1|id5
cold2|id6

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

5. 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

6. 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

7. 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

8. 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

9. UNIX for Dummies Questions & Answers

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... (7 Replies)
Discussion started by: zajtat
7 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
Login or Register to Ask a Question