08-13-2008
Awk to print distinct col values
Hi Guys...
I am newbie to awk and would like a solution to probably one of the simple practical questions.
I have a test file that goes as:
1,2,3,4,5,6
7,2,3,8,7,6
9,3,5,6,7,3
8,3,1,1,1,1
4,4,2,2,2,2
I would like to know how AWK can get me the distinct values say for eg: on col2 and figure out that the distinct values are only 2,3,4.
I need to check my actual realtime medical file with the distinct service dates from around a relatively big 200,000 records.
And one more question is...how can I use awk to print out records which dont meet a specific criteria...like...
Eg: I want to see only those records where Distinct Col2 values are less than 10 and see the actual distinct values to figure out why they are < 10
I know I can always go for some fancy ETLs to achieve complex requirements(ofcoz this requirement is not complex anyway) and play around with the data but I wanna use the power of awk/sed to accomplish the tasks.
Help is highly appreciated.
Thank you very much
-Anduzzi
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi
I have a pipe delimited file. I am trying to grab the DISTINCT value from the second field. The file is something like:
1233|apple|ron
1234|apple|elephant
1235|egg|man
the output I am trying to get from second field is apple,egg (apple coming only once)
Thanks
simi (4 Replies)
Discussion started by: simi28
4 Replies
2. Shell Programming and Scripting
this is a little more complex than that. I have a text file and I need to find all the distinct words that appear in a line after the word TABLESPACE
when I grep for just the word tablespace, I get:
how do i parse this a little better so i have a smaller file to read?
This is just an... (4 Replies)
Discussion started by: guessingo
4 Replies
3. UNIX for Dummies Questions & Answers
I am a beginner to scripting, please help me in this regard.
How do I create a script that provides a count of distinct values of all the fields in the pipe delimited file ? I have 20 different files with multiple columns in each file. I needed to write a generic script where I give the number... (1 Reply)
Discussion started by: vukkusila
1 Replies
4. Shell Programming and Scripting
I am a beginner to scripting, please help me in this regard.
How do I create a script that provides a count of distinct values of all the fields in the pipe delimited file ? I have 20 different files with multiple columns in each file. I needed to write a generic script where I give the number... (2 Replies)
Discussion started by: vukkusila
2 Replies
5. Shell Programming and Scripting
Hi guys, I am not an expert in shell and I need help with awk command. I have a file with values like
200 1 1
200 7 2
200 6 3
200 5 4
300 3 1
300 7 2
300 6 3
300 4 4
I need resulting file with averages of... (3 Replies)
Discussion started by: saif
3 Replies
6. UNIX for Advanced & Expert Users
Hello everyone,
I am writing a script to process data from the ATP world tour.
I have a file which contains:
t=540 y=2011 r=1 p=N409
t=540 y=2011 r=2 p=N409
t=540 y=2011 r=3 p=N409
t=540 y=2011 r=4 p=N409
t=520 y=2011 r=1 p=N409
t=520 y=2011 r=2 p=N409
t=520 y=2011 r=3 p=N409
The... (4 Replies)
Discussion started by: imahmoud
4 Replies
7. UNIX for Dummies Questions & Answers
Hi !
input:
A|B|C|D
A|F|C|E
A|B|I|C
A|T|I|B
As the title of the thread says, I would need to get:
1|3|2|4
I tried different variants of this command, but I don't manage to obtain what I need:
gawk 'BEGIN{FS=OFS="|"}{for(i=1; i<=NF; i++) a++} END {for (b in a) print b}' input
... (2 Replies)
Discussion started by: beca123456
2 Replies
8. Shell Programming and Scripting
Hi,
I have two files of the following format
file1
chr1:345-456
chr2:123-456
chr2:455-678
chr3:456-789
chr3:444-555
file2
chr1:345-456
chr2:123-456
chr3:456-789
output (2 Replies)
Discussion started by: jacobs.smith
2 Replies
9. Shell Programming and Scripting
Hi,
Please help with this.
I have several excel files (with and .xlsx format) with 10-15 columns each.
They all have the same type of data but the columns are not ordered in the same way.
Here is a 3 column example. What I want to do add the alphabet
from column 2 to column 3, provided... (9 Replies)
Discussion started by: newbie83
9 Replies
10. Emergency UNIX and Linux Support
Hello Friends,
Hope all are doing fine.
Here is a tricky issue.
my input file is like this
07 10 14 20 21
03 15 27 30 32
01 10 11 19 30
02 06 14 15 17
01 06 20 25 29
Logic:
1. Please print another column as "0-0-0-0-0" for the first and second rows.
2. Read the first column... (4 Replies)
Discussion started by: jacobs.smith
4 Replies
LEARN ABOUT SUNOS
acctcon
acctcon(1M) System Administration Commands acctcon(1M)
NAME
acctcon, acctcon1, acctcon2 - connect-time accounting
SYNOPSIS
/usr/lib/acct/acctcon [-l lineuse] [-o reboot]
/usr/lib/acct/acctcon1 [-p] [-t] [-l lineuse] [-o reboot]
/usr/lib/acct/acctcon2
DESCRIPTION
acctcon converts a sequence of login/logoff records to total accounting records (see the tacct format in acct.h(3HEAD)). The login/logoff
records are read from standard input. The file /var/adm/wtmpx is usually the source of the login/logoff records; however, because it might
contain corrupted records or system date changes, it should first be fixed using wtmpfix. The fixed version of file /var/adm/wtmpx can then
be redirected to acctcon. The tacct records are written to standard output.
acctcon is a combination of the programs acctcon1 and acctcon2. acctcon1 converts login/logoff records, taken from the fixed /var/adm/wtmpx
file, to ASCII output. acctcon2 reads the ASCII records produced by acctcon1 and converts them to tacct records. acctcon1 can be used with
the -l and -o options, described below, as well as with the -p and -t options.
OPTIONS
-p Print input only, showing line name, login name, and time (in both numeric and date/time formats).
-t acctcon1 maintains a list of lines on which users are logged in. When it reaches the end of its input, it emits a session
record for each line that still appears to be active. It normally assumes that its input is a current file, so that it uses
the current time as the ending time for each session still in progress. The -t flag causes it to use, instead, the last
time found in its input, thus assuring reasonable and repeatable numbers for non-current files.
-l lineuse lineuse is created to contain a summary of line usage showing line name, number of minutes used, percentage of total
elapsed time used, number of sessions charged, number of logins, and number of logoffs. This file helps track line usage,
identify bad lines, and find software and hardware oddities. Hangup, termination of login(1) and termination of the login
shell each generate logoff records, so that the number of logoffs is often three to four times the number of sessions. See
init(1M) and utmpx(4).
-o reboot reboot is filled with an overall record for the accounting period, giving starting time, ending time, number of reboots,
and number of date changes.
EXAMPLES
Example 1: Using the acctcon command.
The acctcon command is typically used as follows:
example% acctcon -l lineuse -o reboots < tmpwtmp > ctacct
The acctcon1 and acctcon2 commands are typically used as follows:
example% acctcon1 -l lineuse -o reboots < tmpwtmp | sort +1n +2 > ctmp
example% acctcon2 < ctmp > ctacct
FILES
/var/adm/wtmpx History of user access and administration information
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWaccu |
+-----------------------------+-----------------------------+
SEE ALSO
acctcom(1), login(1), acct(1M), acctcms(1M), acctmerg(1M), acctprc(1M), acctsh(1M), fwtmp(1M), init(1M), runacct(1M), acct(2),
acct.h(3HEAD), utmpx(4), attributes(5)
System Administration Guide: Basic Administration
NOTES
The line usage report is confused by date changes. Use wtmpfix (see fwtmp(1M)), with the /var/adm/wtmpx file as an argument, to correct
this situation.
During a single invocation of any given command, the acctcon, acctcon1, and acctcon2 commands can process a maximum of:
o 6000 distinct session
o 1000 distinct terminal lines
o 2000 distinct login names
If at some point the actual number of any one of these items exceeds the maximum, the command will not succeed.
SunOS 5.10 22 Feb 1999 acctcon(1M)