Tiago Bruno
Tiago Bruno

Reputation: 413

How can I use awk for modify a column based in the first column?

I have a data like this, and I need automatize a simple task. I need to make the second value of a row, become the same as the first cell in the next row in the sequence like this:

First Second
1   2
4   6
10  12
25  28
30  35

Become

First Second
1   4
4   10
10  25
25  30
30  35

Upvotes: 0

Views: 43

Answers (2)

Ed Morton
Ed Morton

Reputation: 204731

$ awk 'NR==1; NR>2{print p[1], $1} {split($0,p)} END{print p[1], p[2]}' file
First Second
1 4
4 10
10 25
25 30
30 35

Upvotes: 1

Zombo
Zombo

Reputation: 1

It should be noted your output is wrong, you cannot know the 35 because that row has not been read yet:

$ awk 'NR > 1 {print $1} {printf $1 "\t"}' file
1       4
4       10
10      25
25      30
30

Upvotes: 0

Related Questions