Increment existing column in file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Increment existing column in file
# 1  
Old 08-08-2013
Increment existing column in file

Hi All,
I have a file with 3 millions records in which 3rd column is same throughout say its value is 0 throughout.for example:
Code:
 
Col1 Col2 Col3 Col4
A     1      0     5
B     2      0     6
C     3      0     7
D     4      0     9

I want my output as :
Code:
 
Col1 Col2 Col3 Col4
A     1      1     5
B     2      2     6
C     3      3     7
D     4      4     9

Can anybody please help me with this.I want to use for loop in my shell.
# 2  
Old 08-08-2013
A few questions first:-
  • Would you want this coded in shell script entirely so you could add more things into the loop, or would an awk one-liner be okay?
  • Do you have data in fixed width columns? If so, what are the requirements?
  • What OS are you using? Some commands can be flavour or even version specific.
  • What shell are you using? ksh, bash, csh perhaps?
  • Why does the row starting D not have an 8 in Col4?
Okay, ignore that last one.

I'm trying to understand if you want to have a one-off conversion of the file or are you wanting to perform some action using the data on each line as you go.


Thanks, in advance,

Robin
Liverpool/Blackburn
UK
# 3  
Old 08-08-2013
Code:
awk 'NR==1{$1=$1}NR>1{$3=++c}1' OFS='\t' file

This User Gave Thanks to Yoda For This Post:
# 4  
Old 08-08-2013
Hi..Thank u so much for quick response..
Answers to ur questions:
I am using ksh scripts and just wanted one liner command line command to increment third column.
I got the required code from unix forum..Smilie as below::
Code:
 
awk -F"," -v OFS="," 'NR>1{ $3+=int((NR-1)/1) } 1' infile > outfile

thank you unix forum..Smilie
# 5  
Old 08-08-2013
Code:
awk 'NR>1 {$3=NR-1} 1' file
Col1 Col2 Col3 Col4
A 1 1 5
B 2 2 6
C 3 3 7
D 4 4 9

This User Gave Thanks to RudiC For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Add current time stamp column in existing csv file

Hi , I want to add a new column 'current_time stamp' in my existing csv file with current time stamp for all the records.I tried something this but this is printing 0 with date & time and printed date one line above header.Please help awk -F "," 'BEGIN{ OFS="," } {$6=system("date... (5 Replies)
Discussion started by: netdbaind
5 Replies

2. Shell Programming and Scripting

Matching column then append to existing File as new column

Good evening I have the below requirements, as I am not an experts in Linux/Unix and am looking for your ideas how I can do this. I have file called file1 and file2. I need to get the second column which is text1_random_alphabets and find that in file 2, if it's exists then print the 3rd... (4 Replies)
Discussion started by: mychbears
4 Replies

3. Shell Programming and Scripting

Increment Column having Alphanumeric value in file

I want to replace a column(first and last) having an alphanumeric value in a file. Requirement : 1)All values in a Column must be unique and contain an incremented pattern “HCTV0096” for first column and “cafefeca0090” for last column 2)for uniquely identifying each value in column Numeric part... (6 Replies)
Discussion started by: ketanraut
6 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

Create new file with increment column based on conditions

Hello, Using bash script, i need to process the following file: 887,86,,2013-11-06,1,10030,5,2,0,200,, 887,86,,2013-11-05,1,10030,5,2,0,199,, 887,138,,2013-11-06,1,10031,6,2,0,1610612736,, 887,164,,2013-11-06,1,10000,0,2,0,36000,, and to create a new file such as the below ... (2 Replies)
Discussion started by: JonhyDeep
2 Replies

6. Ubuntu

How to add a data column in existing file

Hi All I need to add a column on my existing data file. I know similar posts are there but none of them were meeting my requirement. My input is 1.20 3.44 4.88 5.11 4.99 3.22 1.89 3.89 2.90 Desired output 1 1.20 3.44 4.88 2 5.11 4.99 3.22 3 1.89 3.89 2.90 I will... (2 Replies)
Discussion started by: mahbub03
2 Replies

7. Shell Programming and Scripting

Adding a new column in a file with other existing columns

Hi All , Kindly help me with this soln awk '{printf "%s %7s \n", $1,$c}' infile where value of variable c I am externally giving input But executing the above command shows all the columns of infile where as I want only 1st column of infile and 2nd column should print value c (8 Replies)
Discussion started by: Pratik4891
8 Replies

8. Shell Programming and Scripting

How to rewrite a existing value in a column inside a file?

I am having 4 field in a file name age date status i want to update or rewrite a value of status with another value how it can be done i used awk & sed but it shows result but not updating in original file help me out... Thanks (4 Replies)
Discussion started by: ragavendar
4 Replies

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

10. Shell Programming and Scripting

Creating/ammending Name Column in existing .txt file

With the help of this forum, I have a script with the following output: chr7 27104483 27105154 chr7 27106872 27110789 chr7 27111956 27112830 chr7 27114388 27125180 chr7 27126966 27131260 chr7 27135440 27137796 which was created by the following script: awk '1 == NR || $NF >= 1000 {... (6 Replies)
Discussion started by: awknerd
6 Replies
Login or Register to Ask a Question