Need help with AWK (newbie)


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need help with AWK (newbie)
# 1  
Old 06-20-2008
Need help with AWK (newbie)

Hello all

I have a file with below data, I need to add a third column as XXXX if the first coloumn (H180620081) last number is "1"
and YYYY if the first coloumn last number is "2"

Can it be done with AWK, I would appreciate if anyone could help me ou with this.


H180620081 31310
H180620082 33330

result

H180620081 31310 XXXX
H180620082 33330 YYYY

Thank you
# 2  
Old 06-20-2008
Try this:

Code:
awk '
substr($1,length($1))=="1"{$(NF+1)="XXXX"}
substr($1,length($1))=="2"{$(NF+1)="YYYY"}1' file

Regards
# 3  
Old 06-20-2008
Thanks a lot Franklin
# 4  
Old 06-20-2008
Or(with nawk or /usr/xpg4/bin/awk on Solaris):
Code:
awk '($3=$1~/1$/?"XXXX":$1~/2$/?"YYYY":"")||1' file

And of course if you have only 2 values (1 and 2) this is sufficient:

Code:
awk '$3=$1~/1$/?"XXXX":"YYYY"' file

# 5  
Old 06-20-2008
thanks radoulov,

what if I have a file like befow and select the line above H18062008(1) which is ccv01.fil.20080618134215.rep for 1 and output it to a new file and if it is 2 then selecting the line above it and sending it to another file.

==> ccv01.fil.20080618134215.rep <==
H180620081 31310


==> ccv01.fil.20080618134236.rep <==
H180620082 33330


Can I do that with AWK

Thanks again (Franklin and Radoulov)
UD
# 6  
Old 06-20-2008
Code:
awk '$1 ~ /[12]$/ { print _ > ("file_" ($1 ~ /1$/ ? 1 : 2)) }
{ _ = $0 }' file

# 7  
Old 06-20-2008
Thanks Radoulov

I am very new to AWK, can you please explain me the script, I have tried executing your script but get expected result may be I am doing something wrong.

Which file name should I give at "file_"

awk '$1 ~ /[12]$/ { print _ > ("file_" ($1 ~ /1$/ ? 1 : 2)) }
{ _ = $0 }' file

Thank you
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Basic awk...newbie quetion

Hi, I was trying to change the value of the 4th column (put '1' in the 4th column of each row). My awk command is: awk -F, '{$3=1;}1' OFS= input.txt > ./test_out.txt My input file is: a 1 2 31 b 4 5 61 c 7 8 91 My output file (test_out.txt)is: a 1 2 31 b 4 5 61 c 7 8 91 What... (4 Replies)
Discussion started by: pc2001
4 Replies

2. Shell Programming and Scripting

newbie needs help batching awk, tabitha

Hi guys, I need a little help learning to batch an awk script. All the examples I found on line are too complicated for me. Here's the awk command that I want to run on lots of files. awk 'NR==FNR{a=$0;next$3 in a{print $0 a " " a}' inputfile_A_1.out inputfile_B_1.out > outputfile1.txt ... (11 Replies)
Discussion started by: atjurhs
11 Replies

3. Shell Programming and Scripting

Need help with awk to get values from input (newbie here)

Hello everyone! I have a small text file called processes.txt which contains a few lines in this fashion: ID: 35; Arrival_Time: 0; Total_Exec_Time: 4; ID: 36; Arrival_Time: 1; Total_Exec_Time: 6; I am trying to figure out how I can get the values from between the delimiters ';' and ':' per... (16 Replies)
Discussion started by: mehungry
16 Replies

4. Shell Programming and Scripting

Newbie AWK Question

$ awk -f awk1.awk Where awk1.awk reads: BEGIN { printf ("Name = Smith, Richard" > "awk1" \n) printf ("Name = Johnson, Waylan" > "awk1" \n) printf ("Name = Brown, Pat" > "awk1" \n) } If I get rid of "\n", awk1 file gets created but all the names... (3 Replies)
Discussion started by: ora_umair
3 Replies

5. Shell Programming and Scripting

Help with awk for a newbie

Hi there, greetingt to everybody. I have configured syslog-ng to get messages over UDP saving logs into a text file, it works fine. I need to store the content of this file in several files depending from some criteria that I try to explain you with some examples : Suppose the content of my log... (5 Replies)
Discussion started by: capnino
5 Replies

6. UNIX for Dummies Questions & Answers

Newbie Help with Grep or Awk .. Easy one ...

I have this output: uniquemember=uid=315kthatch,ou=people,ou=client315,dc=paisleyhosting,dc=com and i want the output to be just this: 315kthatch I need it to be generic tho, because I have hundreds of lines of output, and the preceding numbers are not always 315. So I would need... (3 Replies)
Discussion started by: kthatch
3 Replies

7. Shell Programming and Scripting

Help a newbie please with awk if else statements

Hi, Despite reading the Conditional Statements chapter in the O'Reilly Sed & Awk book several times and looking at numerous examples, I cannot for the life of me get any kind of if ... else statement to work in my awk scripts! My scripts work perfectly (as they are written at least) and do what... (4 Replies)
Discussion started by: jonathanm
4 Replies

8. Shell Programming and Scripting

Need Help with AWK or SED (Newbie)

Hello, I have a text file in below format, how do I put a header and assign field names to the file with either AWK or SED STRT~ VA ~23606 ~TM14~8506~1485 (page 1) STRT~ VA ~23662 ~TM17~8362~1783 (page 2) STRT~ VA ~23662 ~TM17~8362~1783 STRT~ VA ~23662 ~TM17~8362~1783 STRT~ VA ~23662... (1 Reply)
Discussion started by: udaybo
1 Replies

9. Shell Programming and Scripting

Newbie Awk data sorting

Hi guys, just started using awk here. I've got a file called a.txt which contains a load of numbers on each line e.g. 35 232 654 1 9 4 I want to learn how to do three things: 1. Find the minimum 2. Find the maximum 3. Find the average I want to learn how to do this using awk.... (5 Replies)
Discussion started by: i_am_a_robot
5 Replies

10. Shell Programming and Scripting

awk newbie

I would like to parse a file and use each record to create a unique file where the name of the file created is taken from the 3rd field. Example: here are 3 records. 000007 0110 07-0001583 20060802132213 20060801112601 000007 0110 07-0001584 ... (4 Replies)
Discussion started by: zoo591
4 Replies
Login or Register to Ask a Question