Print a field from the previous line


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Print a field from the previous line
# 8  
Old 04-26-2011
... Ok so ...... then replace $2 with $4
# 9  
Old 04-27-2011
with the scriptu sent I have o/p
Code:
3408   5600
3796   6035
4200   6785.......why this is changing from 6285?...this shud be 6285.
4676   6785
  40   1554
 200   1998
 652   2451

plz help me vt that!

---------- Post updated at 11:20 PM ---------- Previous update was at 11:20 PM ----------

with the scriptu sent I have o/p
Code:
3408   5600
3796   6035
4200   6785.......why this is changing from 6285?...this shud be 6285.
4676   6785
  40   1554
 200   1998
 652   2451

plz help me vt that!

---------- Post updated at 11:24 PM ---------- Previous update was at 11:20 PM ----------

I/P
cat tst
Code:
3408   5600
3796   6035
4200   6285
4676      0
  40   1554
 200   1998
 652   2451

code:
Code:
awk '$2{x=$2}!$2{$2=x+500}1' tst

O/P
Code:
3408 6100
3796 6535
4200 6785
4676 6785
40 2054
200 2498
652 2951

so actually all the $2 part is getting incremented by 500,instead it shud be only for if $2==0.
But I wonder why ur O/P looks different from mine with the same code?
Ne1 there to come with a prompt reply?
Appreciated!!!

Last edited by Franklin52; 04-27-2011 at 04:08 AM.. Reason: Please use code tags
# 10  
Old 04-27-2011
Hi,

Refer to my post #6.

Otherwise, i have no idea why you have a result different from mine, because i tested my code on a linux machine:

Code:
# uname -a
Linux xxxxxx 2.4.21-40.ELsmp #1 SMP Thu Feb 2 22:22:39 EST 2006 i686 i686 i386 GNU/Linux
# cat tst
3408 5600
3796 6035
4200 6285
4676 0
4677 0
4678 0
40 1554
200 1998
652 2451
864 2728
1200 0

Code:
# awk '$2{x=$2}!$2{x+=500;$2=x}1' tst
3408 5600
3796 6035
4200 6285
4676 6785
4677 7285
4678 7785
40 1554
200 1998
652 2451
864 2728
1200 3228


Last edited by ctsgnb; 04-27-2011 at 05:33 AM..
# 11  
Old 04-27-2011
Hi,

Code:
kilo2[m1] cat tst
3408 5600
3796 6035
4200 6285
4676 0
4677 0
4678 0
40 1554
200 1998
652 2451
864 2728
1200 0
kilo2[m1] awk '$2{x=$2}!$2{x+=500;$2=x}1' tst
awk '$2{x=$2}tst2{x+=500;$2=x}1' tst
3408 5600
3796 6035
4200 6285
4676 0
4677 0
4678 0
40 1554
200 1998
652 2451
864 2728
1200 0

Thats what I am getting as O/P...strange!!!
thanks for ur help,but can u plz help me modifying the script in a alternative way getting rid of 1' (in the script).....
cheers!

Last edited by Franklin52; 04-27-2011 at 06:18 AM.. Reason: Please use code tags
# 12  
Old 04-27-2011
it looks as if you entered the command twice
Code:
kilo2[m1] awk '$2{x=$2}!$2{x+=500;$2=x}1' tst
awk '$2{x=$2}tst2{x+=500;$2=x}1' tst

instead of just

Code:
awk '$2{x=$2}!$2{x+=500;$2=x}1' tst

# 13  
Old 04-27-2011
Whatever command I execute prior to run the script get in the script part,thats bit weird.
say in this case,
kilo2[m1] cd /kill/disco
kilo2[m1] awk '$2{x=$2}!$2{x+=500;$2=x}1' tst
awk 'awk: (FILENAME=tst FNR=1) fatal: division by zero attempted
$2{x=$2}/kill/disco2{x+=500;$2=x}1' tst
kilo2[m1]
Can you please help me
Thanks in advance

---------- Post updated at 05:33 AM ---------- Previous update was at 05:33 AM ----------

Whatever command I execute prior to run the script get in the script part,thats bit weird.
say in this case,
kilo2[m1] cd /kill/disco
kilo2[m1] awk '$2{x=$2}!$2{x+=500;$2=x}1' tst
awk 'awk: (FILENAME=tst FNR=1) fatal: division by zero attempted
$2{x=$2}/kill/disco2{x+=500;$2=x}1' tst
kilo2[m1]
Can you please help me
Thanks in advance
# 14  
Old 04-27-2011
What is the name of your file ?
In which column do you want to replace the 0 ? (the 4th column ? or the 2cnd column ? or other?)
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. AIX

Print nth previous line after match

Please help me print nth line after match awk or sed one line command. (3 Replies)
Discussion started by: sushma123
3 Replies

2. Shell Programming and Scripting

How to print previous line of multiple pattern matched line?

Hello, I have below format log file, Comparing csv_converted_files/2201/9747.1012H67126.5077292103609547345.csv and csv_converted_files/22019/97447.1012H67126.5077292103609547345.csv Comparing csv_converted_files/2559/9447.1012H67126.5077292103609547345.csv and... (6 Replies)
Discussion started by: arvindshukla81
6 Replies

3. Shell Programming and Scripting

Command/script to match a field and print the next field of each line in a file.

Hello, I have a text file in the below format: Source Destination State Lag Status CQA02W2K12pl:D:\CAQA ... (10 Replies)
Discussion started by: pocodot
10 Replies

4. Shell Programming and Scripting

Replace first field of a line with previous filed of the line

Hi Everyone, I have a file as below: IM2345638,sherfvf,usha,30 IM384940374,deiufbd,usha,30 IM323763822,cdejdkdnbds,theju,15 0,dhejdncbfd,us,20 IM398202038,dhekjdkdld,tj,30 0,foifsjd,u2,40 The output i need is as below IM2345638,sherfvf,usha,30... (4 Replies)
Discussion started by: usha rao
4 Replies

5. Shell Programming and Scripting

awk script -print line when $2 > $2 of previous line

Hi all, From a while loop I am reading a sorted file where I want to print only the lines that have $1 match and $2 only when the difference from $2 from the previous line is > 30. Input would be like ... AN237 010 193019 0502 1 CSU Amoxycillin AN237 080 ... (2 Replies)
Discussion started by: gafoleyo73
2 Replies

6. Shell Programming and Scripting

Compare Field in Current Line with Field in Previous

Hi Guys I have the following file Essentially, I am trying to find the right awk/sed syntax in order to produce the following 3 distinct files from the file above: Basically, I want to print the lines of the file as long as the second field of the current line is equal to the... (9 Replies)
Discussion started by: moutaye
9 Replies

7. UNIX for Dummies Questions & Answers

Awk to print data from current and previous line

Hi guys, I have found your forum super useful. However, right now I am stuck on a seemingly "simple" thing in AWK. I have two columns of data, the first column in Age (in million years) and the second column is Convergence Rate (in mm/yr). I am trying to process my data so I can use it to... (2 Replies)
Discussion started by: awk_noob_456
2 Replies

8. Shell Programming and Scripting

Print the previous line

My requirement is that when ever search criteria matchs in log file, the previous line just above the search word as well as search word should be print. sample log file --03-19T11:26 xxx create version "a.sh@@/main/6" "104157 " --03-18T16:01 xxx create version "a.sh@@/main/5" ... (6 Replies)
Discussion started by: jadoo_c2
6 Replies

9. Shell Programming and Scripting

how Print previous line ..........

HELLO...I wanted to ask you, than sure know unix more than me, as I can obtain the following solution: I have a file with rows of the type: CIAO COME STAI PERCHE COME STAI CIAO COME VA ALLO CHE FACCIAMO ................. I would that if in a line is present the word (for example) " CHE... (9 Replies)
Discussion started by: fabi20
9 Replies

10. Shell Programming and Scripting

Print previous, current and next line using sed

Hi, how can i print the previous, current and next line using sed? current line is the matching line. The following prints all lines containing 'Failure' and also the immediate next line cat $file | sed -n -e '/Failure/{N;p;}' Now, i also want to print the previous line too. Thanks,... (8 Replies)
Discussion started by: ysrinu
8 Replies
Login or Register to Ask a Question