Sponsored Content
Top Forums Shell Programming and Scripting how to find the field has more than 2 decimals Post 302985901 by Don Cragun on Wednesday 16th of November 2016 10:40:09 PM
Old 11-16-2016
Quote:
Originally Posted by ken6503
I tried below command but it gave me the record with one decimal as well.

Code:
awk -F"," '$2!~/\.[0-9][0-9]$/ {print $0}' test

That is a good start. The ERE you are using is matching a decimal point followed by two decimal digits (which as you have found only matches lines with exactly two decimal places) at the end of the 2nd field. By negating the match, it finds lines with more than two digits following a decimal point, less than two digits following a decimal point, and fields that do not contain a decimal point. If we use a positive search for three digits following a decimal point (i.e., $2~/[.][0-9][0-9][0-9]/) not anchored to the end of the field, we can find any field that contains three or more decimal digits after a decimal point.

In the 1st post in this thread you said you wanted to print the 1st two fields from lines that matched your criteria. Using print $0 prints the entire input line; not just the 1st two fields.

Try:
Code:
#!/bin/ksh
/usr/xpg4/bin/awk '
BEGIN {	FS = OFS = ","
}
$2 ~ /[.][0-9][0-9][0-9]/ {
	print $1, $2
}' test

and see if that does what you want.

Note that itkamaraj's solution won't necessarily work with input that has extraneous spaces such as:
Code:
xyz, 123456.78 , xxx

which has three characters after the decimal point, but not three digits after the decimal point.
These 2 Users Gave Thanks to Don Cragun For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

find pattern and replace another field

HI all I have a problem, I need to replace a field in a file, but only in the lines that have some pattern, example: 100099C01101C00000000059394200701CREoperadora_TX 100099C01201C00000000000099786137OPERADORA_TX2 in the example above I need to change the first field from 1 to 2 only if... (3 Replies)
Discussion started by: sergiioo
3 Replies

2. Shell Programming and Scripting

convert Regular decimals to Packed decimals

Hi, I am trying to find if there is a way to convert regular decimal values to Paced decimal values. I tried to find a c program but I could get a Packed converted to regular decimal not the other way round. If not unix please let me know if any other progrimming language I can use to do... (2 Replies)
Discussion started by: mgirinath
2 Replies

3. Shell Programming and Scripting

Find top N values for field X based on field Y's value

I want to find the top N entries for a certain field based on the values of another field. For example if N=3, we want the 3 best values for each entry: Entry1 ||| 100 Entry1 ||| 95 Entry1 ||| 30 Entry1 ||| 80 Entry1 ||| 50 Entry2 ||| 40 Entry2 ||| 20 Entry2 ||| 10 Entry2 ||| 50... (1 Reply)
Discussion started by: FrancoisCN
1 Replies

4. Shell Programming and Scripting

find the last field in a string

Hi all I have strings with fields separated by <space> and I want to automatic find the value of "the last field -1" for each string Strings don't have the same nb of fields I know it's possible with awk but I didn't find syntax... Many thanks for your help ;) (3 Replies)
Discussion started by: madmat
3 Replies

5. Shell Programming and Scripting

find the field number

######################## SOLVED ################## Hi I have a header file like the following and the field "IDENTIFIER" can be at any possition on this line, The line can containt a variable number of field, not alway the same depending of the header file i use ... (6 Replies)
Discussion started by: kykyboss023
6 Replies

6. Shell Programming and Scripting

Find and replace blank in the last field

Hi all, I have a huge file and I need to get ride of the fields 6-11 and replace the blanks in field 5 with a missing value(99999). 159,93848,5354,343,67898,45,677,5443,434,5545,45 677,45545,3522,244, 554,54344,3342,456, 344,43443,2344,444,23477... (12 Replies)
Discussion started by: GoldenFire
12 Replies

7. Shell Programming and Scripting

how to find the 2nd field

java....4059... compsite 62u IPv4 170747 TCP *:9400 (LISTEN) java...... 05... compsite 109u IPv4 171216 TCP *:9401 (LISTEN) This is Joust formated like this Please Repace "." with space" " All are Right Justfied Output :- 4058 and 05 so that i can kill this (1 Reply)
Discussion started by: pareshpatra
1 Replies

8. Shell Programming and Scripting

Find a blank field

Find a blank field Hi I have set of fields that have some blank values, how to find that and get its line noumbers in output file. Ex: Col1 col2 col3 11 ss 103 12 104 13 105 14 se 106 (2 Replies)
Discussion started by: Shenbaga.d
2 Replies

9. Shell Programming and Scripting

Find pattern in first field of file

Hello all I have two files. 1. Pattern.txt - It contains patterns to be matched. It has large number of patterns to be matched. Cat Pattern.txt Ram Shyam Mohan Jhon I have another file which has actual data and records are delimted by single or multiple spaces. 2.... (8 Replies)
Discussion started by: krsnadasa
8 Replies

10. Shell Programming and Scripting

Find the difference in specific field

Hi All, Seeking for your assistance to get the difference of field1 and field2 and output all the records if there's a difference. please see below scenario. file1.txt 250|UPTREND FASHION DESIGN,CORP.|2016-04-04 09:36:13.991257 74|MAINSTREAM BUSINESS INC.|2016-04-04 09:36:13.991257... (1 Reply)
Discussion started by: znesotomayor
1 Replies
Format::Human::Bytes(3pm)				User Contributed Perl Documentation				 Format::Human::Bytes(3pm)

NAME
Format::Human::Bytes - Format a bytecount and make it human readable VERSION
Version 0.05 SYNOPSIS
Ever showed 12345678 bytes to the user instead of just saying 11MB? This module returns you a printable string which is more readable by humans than a simple bytecount. use Format::Human::Bytes; $readable = Format::Human::Bytes::base2($bytecount[,$decimals]); $readable = Format::Human::Bytes::base10($bytecount[,$decimals]); $readable = Format::Human::Bytes->base2($bytecount[,$decimals]); $readable = Format::Human::Bytes->base10($bytecount[,$decimals]); my $fhb = Format::Human::Bytes->new(); $readable = $fhb->base2($bytecount[,$decimals]); $readable = $fhb->base10($bytecount[,$decimals]); All functions do "intelligent" switching to the next unit, for example: 1000 => 1000B [...] 8000 => 8000B 9000 => 9kB The difference between 1000 bytes and 1500 bytes is usually bigger (for example because of a slow link) than between 95kB and 95,5kB. The same applies to 8000kB vs. 9 MB and for the other units. Depending on your usage, you may want to specify how many decimals should be shown (defaults to no decimals). FUNCTIONS
/ METHODS new my $fhb = Format::Human::Bytes->new(); Creates and returns a Format::Human::Bytes - object. base2 Callable as a function: $readable = Format::Human::Bytes::base2($bytecount[,$decimals]); Callable as a class method: $readable = Format::Human::Bytes->base2($bytecount[,$decimals]); Callable as a object method: $readable = $fhb->base2($bytecount[,$decimals]); Returns the correct readable form of the given bytecount. Correct in this case means that 1kB are 1024 Bytes which is how computers see the world. If you specify a decimal parameter, the result number will have the number of decimal numbers you specified. base10 Callable as a function: $readable = Format::Human::Bytes::base10($bytecount[,$decimals]); Callable as a class method: $readable = Format::Human::Bytes->base10($bytecount[,$decimals]); Callable as a object method: $readable = $fhb->base10($bytecount[,$decimals]); Returns the incorrect readable form of the given bytecount. Incorrect in this case means that 1kB is 1000 Bytes and 1 MB is 1000000 bytes which is how some (many) people see the world, but it's wrong for computers. If you specify a decimal parameter, the result number will have the number of decimal numbers you specified. AUTHOR
Sebastian Willing, "<sewi at cpan.org>" BUGS
Please report any bugs or feature requests to "bug-format-human-bytes at rt.cpan.org", or through the web interface at <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Format-Human-Bytes>. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. SUPPORT
You can find documentation for this module with the perldoc command. perldoc Format::Human::Bytes You can also look for information at: o RT: CPAN's request tracker <http://rt.cpan.org/NoAuth/Bugs.html?Dist=Format-Human-Bytes> o AnnoCPAN: Annotated CPAN documentation <http://annocpan.org/dist/Format-Human-Bytes> o CPAN Ratings <http://cpanratings.perl.org/d/Format-Human-Bytes> o Search CPAN <http://search.cpan.org/dist/Format-Human-Bytes/> HISTORY
The functions are in use since late 2003 or early 2004 but I didn't pack them for CPAN before 2009. LICENSE
This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself. perl v5.10.1 2010-04-08 Format::Human::Bytes(3pm)
All times are GMT -4. The time now is 11:49 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy