Simple awk conditional one-liner


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Simple awk conditional one-liner
# 1  
Old 09-19-2011
Simple awk conditional one-liner

Hello,
I'm looking for an awk one-liner that prints the first two data fields, then contains a conditional where if $3>$4, it prints $3-$4. Otherwise, it prints $3. Example:

Data file:
Code:
123,456,999,888
333,222,444,555
654,543,345,888
444,777,333,111

Output:
Code:
123,456,111
333,222,444
654,543,345
444,777,222

Thanks very much!

Last edited by Franklin52; 09-19-2011 at 02:44 PM.. Reason: Please use code tags for data and code samples, thank you
# 2  
Old 09-19-2011
Code:
SCRIPTS>awk -F"," '{print $1,$2,(($3-$4)>0?$3-$4:$3)}' OFS="," input_file

These 2 Users Gave Thanks to panyam For This Post:
# 3  
Old 09-19-2011
Code:
 awk -F, '{if($3>$4){v=$3-$4}else{v=$3} print $1,$2,v}' OFS="," inputFile

If solaris, use nawk

--ahamed
This User Gave Thanks to ahamed101 For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Simple conditional yields too many responses

In this script: #!/bin/bash # bird read -p "Enter name of a bird " REPLY=$REPLY birdname="duck sparrow hawk" for i in $birdname do if ] then echo "Yes, that is a bird." else echo "That is not a bird." fi done I get... (9 Replies)
Discussion started by: Xubuntu56
9 Replies

2. Shell Programming and Scripting

awk one liner

The below code is a simple modified sample from a file with millions of lines containing hundreds of extra columns xxx="yyy" ... <app addr="1.2.3.4" rem="1000" type="aaa" srv="server1" usr="user1"/> <app usr="user2" srv="server2" rem="1001" type="aab" addr="1.2.3.5"/>What's the most efficient awk... (2 Replies)
Discussion started by: cabrao
2 Replies

3. UNIX for Dummies Questions & Answers

awk or sed one liner

I have a data base of part numbers: AAA Thing1 BBB Thing2 CCC Thing3 File one is a list of part numbers: XXXX AAA234 XXXX BBB678 XXXX CCC2345 Is there a sed one-line that would compare a data base with and replace the part numbers so that the output looks like this? XXXX AAA234... (7 Replies)
Discussion started by: jimmyf
7 Replies

4. Shell Programming and Scripting

HELP with AWK one-liner. Need to employ an If condition inside AWK to check for array variable ?

Hello experts, I'm stuck with this script for three days now. Here's what i need. I need to split a large delimited (,) file into 2 files based on the value present in the last field. Samp: Something.csv bca,adc,asdf,123,12C bca,adc,asdf,123,13C def,adc,asdf,123,12A I need this split... (6 Replies)
Discussion started by: shell_boy23
6 Replies

5. Shell Programming and Scripting

Search & Replace regex Perl one liner to AWK one liner

Thanks for giving your time and effort to answer questions and helping newbies like me understand awk. I have a huge file, millions of lines, so perl takes quite a bit of time, I'd like to convert these perl one liners to awk. Basically I'd like all lines with ISA sandwiched between... (9 Replies)
Discussion started by: verge
9 Replies

6. Shell Programming and Scripting

Awk one-liner?

Hello, I have two files... File #1 1 3 2 5 File #2 3 5 3 1 3 7 9 1 5 2 5 8 3 3 1 I need to extract all lines from File #2 where the first two columns match each line of File #1. So in the example, the output would be: 1 3 7 2 5 8 Is there a quick one-liner that would... (4 Replies)
Discussion started by: palex
4 Replies

7. UNIX for Dummies Questions & Answers

need an awk one liner

example input file: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 (3 Replies)
Discussion started by: kenneth.mcbride
3 Replies

8. UNIX for Dummies Questions & Answers

awk one liner

I need a one liner to" find /pattern/ print from x lines before "pattern" to y lines after "pattern" (3 Replies)
Discussion started by: kenneth.mcbride
3 Replies

9. Shell Programming and Scripting

awk one liner

input a 100 200 300 b 400 10 output a 100 a 200 a 300 b 400 b 10 Thanx (6 Replies)
Discussion started by: repinementer
6 Replies

10. Shell Programming and Scripting

Simple sed one-liner for fixing unencoded ampersands

Hi, I recieve some XML-files that constantly has bad encoded content. There are Ampersands that are not encoded correctly causing my XML-parser to halt. I wrote a sed one-liner to fix any stand alone "&": sed -e 's/&/&amp;/gi' input.xml testfile for input: <xml> <source> &quot; One &quot; </source>... (8 Replies)
Discussion started by: tobbe
8 Replies
Login or Register to Ask a Question