Sponsored Content
Top Forums UNIX for Dummies Questions & Answers awk If expression - Return string if not true Post 302952449 by mmab on Wednesday 19th of August 2015 06:42:49 AM
Old 08-19-2015
Thanks for the quick reply.

When I run this on a txt file with no duplicates it works great. But when I run it on a file with duplicates I get the following output;

Code:
 
 awk 'BEGIN { FS = OFS = "," } $2 == $3 { print f++ } END {if(f == 0) print "No Duplicates"}' List_With_Duplicates.txt

Code:
 
 0
 1

Preferred output is;

Code:
 
 a,1,1
 e,3,3

The code seems to output the iteration number of 'f' rather than the value. Is there an amendment that can be made to change this?

Thanks
Moderator's Comments:
Mod Comment Please use CODE tags (not ICODE tags) for multiline sample code, input, and output!


---------- Post updated at 11:41 AM ---------- Previous update was at 11:23 AM ----------

I tried;

Code:
 
 awk 'BEGIN { FS = OFS = "," } $2 == $3 { print f++ $1,$2,$3 } END {if(f == 0) print "No Duplicates"}' List_With_Duplicates.txt

And got the following output;

Code:
 
 0a,1,1
 1e,3,3

Is there a way of hiding the iteration number? When I do the same command but without the f++ the 'Non Duplicate' string is output also.

Thanks
Moderator's Comments:
Mod Comment Please use CODE tags (not ICODE tags) for multiline sample code, input, and output!


---------- Post updated at 11:42 AM ---------- Previous update was at 11:41 AM ----------

Sorry, was using wrong tabs

Last edited by Don Cragun; 08-19-2015 at 07:49 AM.. Reason: Fix tags yet again.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

deleting 'carriage return' from string

hi there I'm getting a string from a sqlplus query, and I need to compare it with another string Problem here, is that the string i get from query brings a 'carriage return' with it, and comparing throws always false value. i need to delete all carriage retun charactres in string. how... (6 Replies)
Discussion started by: viko
6 Replies

2. Shell Programming and Scripting

return string in functions

Hi friends I need to return string value in functions can anyone help me out to return string values rather than integer. #!/bin/bash add_a_user() { USER=$1 COMPANY=$2 shift; shift; echo "Adding user $USER ..." echo "$USER working in $COMPANY ..." ret_type=YES return... (1 Reply)
Discussion started by: kittusri9
1 Replies

3. Shell Programming and Scripting

validate a string against a regular expression

Hi there i have a script which will create unix user accounts. Id like to validate the entered string so that it is specifically 8 characters or less and consists of only ! not Is there a way to validate a string against a regular expression.. i.e size=`printf "$var | wc -m` ... (1 Reply)
Discussion started by: hcclnoodles
1 Replies

4. UNIX for Dummies Questions & Answers

Proper Expression To Not Include A String...

I have a folder of scripts: bash:/folderpath/> ls beginFile.sh beginFileBackup.sh beginAnother.sh beginAnotherBackup.sh beginJunk.sh beginJunkBackup.sh I'd like to be able to call just one (beginFile.sh) using this type of scheme: #Run the beginFile script without the word "Backup" in... (1 Reply)
Discussion started by: mrwatkin
1 Replies

5. Shell Programming and Scripting

How to return a string?

function blah { return "string" } it keeps saying string: not found How can i do this guys? Because I'm trying to do something like this function print_daemon_options { echo "Start Daemons - Please enter one or a combination of the following:" if isDatasubEnabled &&... (11 Replies)
Discussion started by: pyscho
11 Replies

6. Shell Programming and Scripting

Grep with regulare expression to find carrige return

Gurus, I have a files from where lines are like following <ns0:ccid>123456789</ns0:ccid> <ns0:ccid>1234 56789</ns0:ccid> I would like to grep any number which will be as below (with carrige return): As 123456789 any number so I have to use the regular expression <ns0:ccid>1234... (3 Replies)
Discussion started by: thepurple
3 Replies

7. Shell Programming and Scripting

How can awk search a string without using regular expression?

Hello, Awk seem treat the pattern as regular expression, how can awk search not using regular expression? e.g. just represent for "", not "A" or "a" . I don't want to add backslash . (2 Replies)
Discussion started by: 915086731
2 Replies

8. Shell Programming and Scripting

sed or awk command to replace a string pattern with another string based on position of this string

here is what i want to achieve... consider a file contains below contents. the file size is large about 60mb cat dump.sql INSERT INTO `table1` (`id`, `action`, `date`, `descrip`, `lastModified`) VALUES (1,'Change','2011-05-05 00:00:00','Account Updated','2012-02-10... (10 Replies)
Discussion started by: vivek d r
10 Replies

9. Shell Programming and Scripting

String regular expression

Hi, temp="/usr=25,/usr/lib=12" How to get only dir names with out values. I tried like below but no use. tmp=${temp##*,} echo $tmp o/p: /usr/lib=12 expected o/p: /usr /usr/lib ---> in array (13 Replies)
Discussion started by: munna_dude
13 Replies

10. Shell Programming and Scripting

awk evaluating a string as a math expression

Hi, I am writing a script in awk trying to replace strings that are math expressions with their result. For example, I have a file that looks like this: 5-1 32/8-1 4*12 17+1-3 I would like to get the following output: 4 3 48 15 I tried doing it the following way (using the "bc"... (8 Replies)
Discussion started by: avi.levi
8 Replies
All times are GMT -4. The time now is 02:40 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy