printing 3rd or 4th feild from last in awk.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting printing 3rd or 4th feild from last in awk.
# 8  
Old 05-17-2004
The main problem you are having with this...

cat file.rpt | awk '{print $(NF-1)}'

...is because it's not what I posted! What I posted was...

Mthd=`echo $line | awk '{print $(NF-1)}'`

...this works because the shell while loop removes the blank lines in your file.

By the way, awk is good for processing files like your example...

$ awk 'BEGIN{OFS=","}NF>5{print $1,$2,$3,$(NF-1),$NF}' cr123.rpt
100000,121212,11-May-04,CASH,21.50
110000,121323,11-May-04,CASH,30.00
200000,130909,11-May-04,CHECK,40.00
222000,310902,11-May-04,CREDIT,50.00

...the "NF>5" bit means only process files with more than five fields.

Last edited by Ygor; 05-17-2004 at 09:48 AM..
# 9  
Old 05-17-2004
Quote:
Originally posted by Ygor
The main problem you are having with this...

cat file.rpt | awk '{print $(NF-1)}'

...is because it's not what I posted! What I posted was...

Mthd=`echo $line | awk '{print $(NF-1)}'`

...this works because the shell while loop removes the blank lines in your file.

By the way, awk is good for processing files like your example...

$ awk 'BEGIN{OFS=","}NF>5{print $1,$2,$3,$(NF-1),$NF}' cr123.rpt
100000,121212,11-May-04,CASH,21.50
110000,121323,11-May-04,CASH,30.00
200000,130909,11-May-04,CHECK,40.00
222000,310902,11-May-04,CREDIT,50.00

...the "NF>5" bit means only process files with more than five fields.

Ok I got ya now! I figured I would test it out by running it with input from a cat, didnt know awk would choke on the empty lines. much thanx, this is definately going in my little book of notes!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk to print the string between 3rd and 4th backslashs to end of line

im trying to get awk to print the string between 3rd and 4th backslashs to end of line test could be any word this http://example.com/test/ >to this http://example.com/test/ > testalso the other way round insert string at end of line... (13 Replies)
Discussion started by: bob123
13 Replies

2. Shell Programming and Scripting

Solution for replacement of 4th column with 3rd column in a file using awk/sed preserving delimters

input "A","B","C,D","E","F" "S","T","U,V","W","X" "AA","BB","CC,DD","EEEE","FFF" required output: "A","B","C,D","C,D","F" "S", T","U,V","U,V","X" "AA","BB","CC,DD","CC,DD","FFF" tried using awk but double quotes not preserving for every field. any help to solve this is much... (5 Replies)
Discussion started by: khblts
5 Replies

3. Shell Programming and Scripting

Changing values only in 3rd column and 4th column

#cat file testing test! nipw asdkjasjdk ok! what !ok host server1 check_ssh_disk!102.56.1.101!30!50!/ other host server 2 des check_ssh_disk!192.6.1.10!40!30!/ #grep check file| awk -F! '{print $3,$4}'|awk '{gsub($1,"",$1)}1' 50 30 # Output: (6 Replies)
Discussion started by: kenshinhimura
6 Replies

4. UNIX for Dummies Questions & Answers

Search word in 3rd column and move it to next column (4th)

Hi, I have a file with +/- 13000 lines and 4 column. I need to search the 3rd column for a word that begins with "SAP-" and move/skip it to the next column (4th). Because the 3rd column need to stay empty. Thanks in advance.:) 89653 36891 OTR-60 SAP-2 89653 36892 OTR-10 SAP-2... (2 Replies)
Discussion started by: AK47
2 Replies

5. Shell Programming and Scripting

awk Quick Help: printing upto 3rd octet .

Hi Experts, I am trying to print $2 & the IP_address upto 3rd octet only. But unable to do so, Trying # awk '{print $2, substr($4,1,9)}' file . but not correct File: HOST= cmiHOST06 :: 10.26.107.73:/data120 /nbu/cmiHOST06/athpx07/aa1 HOST= cmiHOST05 :: 10.26.12.76:/data120... (5 Replies)
Discussion started by: rveri
5 Replies

6. UNIX for Dummies Questions & Answers

Write 2nd and 3rd fields to a 4th file name?

I have a flatfile A.txt date|products|notes|location 121117|a108|this is a test|florida 121118|b111|just test it|tampa How do i write an awk to create a file name as location.txt and have products:notes awk -F'|' '{ print $2 ":" $3 }' A.txt > $4.txt I am sure it cannot write to... (5 Replies)
Discussion started by: sabercats
5 Replies

7. Shell Programming and Scripting

How to extract 3rd,4th and 5th element

Hi All! I trying to execute this perl script to extract a particular field in a text file, luckily it works. But, right now I would like to extract 3 more fields in the text file but couldnt get the right syntax on how to do it. command is: perl -pe '$_ = (split(//)) . "\n"' TestDoc.txt... (3 Replies)
Discussion started by: VicNetIT
3 Replies

8. UNIX for Advanced & Expert Users

if 4th and 5th character of sting -ge 45 then add 1 to 3rd character

I want to know how to, given a string like W87151WR71C, if the 4th and 5th character (in this case 15) are greater than 45, then to add 1 to the 3rd character (in this case 7) and assign the revised string the variable name MODSTRING. Thanks in advance. This is ultimately to grab info from... (6 Replies)
Discussion started by: glev2005
6 Replies

9. Shell Programming and Scripting

Awk reporting. Format the output with left justification for every feild

Fallowing is the input file that is pipe seperated. is it possible to generated the report that is alligned left justifed as that of sample output. I apprecitae your help on this. InputFile (temp.txt): 108005555|001|christina.lipski||Submitter... (3 Replies)
Discussion started by: ainuddin
3 Replies

10. Shell Programming and Scripting

How to extract 3rd line 4th column of a file

Hi, Shell script: I would need help on How to extract 3rd line 4th column of a file with single liner Thanks in advance. (4 Replies)
Discussion started by: krishnamurthig
4 Replies
Login or Register to Ask a Question