02-13-2020
It prints the line occurrence of column 1 ($1). a[$1]++ fails for the first occurrence increment since the array value for that key does not exist. The ! means not true so the expression is evaluated to true. The default action for true in awk is to print the line. In other terms: if the previous value of column 1 in array "a" cannot be incremented then print the line. The line could have been written as: '{if (! a[$1]++) print $0}'
Last edited by RavinderSingh13; 02-28-2020 at 01:42 AM..
This User Gave Thanks to rdrtx1 For This Post:
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi,
I want to print column value based on row number say multiple of 8.
Input file:
line 1 67 34
line 2 45 57
. . .
. . .
line 8 12 46
. . .
. . .
line 16 24 90
. . .
. . .
line 24 49 67
Output
46
90
67 (2 Replies)
Discussion started by: Surabhi_so_mh
2 Replies
2. Shell Programming and Scripting
Hello,
BC106081_abc_128240811_128241377 7.96301
BC106081_abc_128240811_128241377 39.322
BC106081_cde_128240811_128241377 1.98628
BC106081_def_128240811_128241377 -2.44492
BC106081_abc_128240811_128241377 69.5504
FLJ00075_xyz_14406_16765 -0.173417
... (3 Replies)
Discussion started by: Diya123
3 Replies
3. Shell Programming and Scripting
Is it possible to print max number of 2 columns - awk
note: print max if the integer is positive and print min if the integer is negative
input
a 1 2
b 3 4
c 5 1
d -3 -5
d -5 -3
output
a 2
b 4
c 5
d -5
d -5 (4 Replies)
Discussion started by: quincyjones
4 Replies
4. Shell Programming and Scripting
Dear All,
I have data like this,
input:
1254 10125
1254 10126
1254 10127
1254 10128
1254 10129
1255 10130
1255 10131
1255 10132
1255 10133
1256 10134
1256 10135
1256 10137... (3 Replies)
Discussion started by: aksin
3 Replies
5. UNIX for Dummies Questions & Answers
file with this content
awk 'NR==1 {print $4} && NR==2 {print $5}' file
The error is shown with syntax error; what can be done (4 Replies)
Discussion started by: cdfd123
4 Replies
6. Shell Programming and Scripting
Hi,
I have the following file,
chr1 100 200 20
chr1 201 300 22
chr1 220 345 23
chr1 230 456 33.5
chr1 243 567 90
chr1 345 600 20
chr1 430 619 21.78
chr1 870 910 112.3
chr1 914 920 12
chr1 930 999 13
My output would be
peak1 20 22 23 33.5 90
peak2 20 21.78 112.3 12 13
Here the... (3 Replies)
Discussion started by: jacobs.smith
3 Replies
7. Shell Programming and Scripting
I have the input file in attached.
I want the output file :
Date , Time , Max_Bearer
11/01/2013 , 23:00 , 1447.894167
11/02/2013 , 00:00 , 1429.266667
11/03/2013 , 00:00 , 712.3175
11/04/2013 , 22:00 , 650.9533333
11/05/2013 , 23:00 , 665.9558333
11/06/2013 , 23:00 , 659.8616667... (2 Replies)
Discussion started by: justbow
2 Replies
8. Shell Programming and Scripting
Hi.
How can we print those rows of file2 which are mentioned in file1. first character of file1 is a row number.. for eg
file1
1:abc
3:ghi
6:pqr
file2
a abc
b def
c ghi
d jkl
e mno
f pqr
... (6 Replies)
Discussion started by: Abhiraj Singh
6 Replies
9. Shell Programming and Scripting
Dear All,
I have input :
SEG901 5173 9005 5740
SEG902 5227 5284
SEG903 5284 5346
SEG904 5346 9010
SEG905 5400 5456
SEG906 5456 5511
SEG907 5511 9011
SEG908 5572 9015
SEG909 5622 9020
SEG910 5678 5739
SEG911 5739 5796
SEG912 5796 9025 ... (3 Replies)
Discussion started by: attila
3 Replies
10. Shell Programming and Scripting
Hello Team,
Need your expertise on following:
Here is the set of data:
C1|4|C1SP1|A1|C1BP1|T1
C1|4|C1SP2|A1|C1BP2|T2
C2|3|C2SP1|A2|C2BP1|T2
C3|3|C3SP1|A3|C3BP1|T2
C2|2|C2SP2|A2|C2BP2|T1
I need to filter above date base on following two steps:
1. Group them by column 1 and 4
2.... (12 Replies)
Discussion started by: angshuman
12 Replies
LEARN ABOUT CENTOS
dblink_build_sql_update
DBLINK_BUILD_SQL_UPDATE(3) PostgreSQL 9.2.7 Documentation DBLINK_BUILD_SQL_UPDATE(3)
NAME
dblink_build_sql_update - builds an UPDATE statement using a local tuple, replacing the primary key field values with alternative supplied
values
SYNOPSIS
dblink_build_sql_update(text relname,
int2vector primary_key_attnums,
integer num_primary_key_atts,
text[] src_pk_att_vals_array,
text[] tgt_pk_att_vals_array) returns text
DESCRIPTION
dblink_build_sql_update can be useful in doing selective replication of a local table to a remote database. It selects a row from the local
table based on primary key, and then builds a SQL UPDATE command that will duplicate that row, but with the primary key values replaced by
the values in the last argument. (To make an exact copy of the row, just specify the same values for the last two arguments.) The UPDATE
command always assigns all fields of the row -- the main difference between this and dblink_build_sql_insert is that it's assumed that the
target row already exists in the remote table.
ARGUMENTS
relname
Name of a local relation, for example foo or myschema.mytab. Include double quotes if the name is mixed-case or contains special
characters, for example "FooBar"; without quotes, the string will be folded to lower case.
primary_key_attnums
Attribute numbers (1-based) of the primary key fields, for example 1 2.
num_primary_key_atts
The number of primary key fields.
src_pk_att_vals_array
Values of the primary key fields to be used to look up the local tuple. Each field is represented in text form. An error is thrown if
there is no local row with these primary key values.
tgt_pk_att_vals_array
Values of the primary key fields to be placed in the resulting UPDATE command. Each field is represented in text form.
RETURN VALUE
Returns the requested SQL statement as text.
NOTES
As of PostgreSQL 9.0, the attribute numbers in primary_key_attnums are interpreted as logical column numbers, corresponding to the column's
position in SELECT * FROM relname. Previous versions interpreted the numbers as physical column positions. There is a difference if any
column(s) to the left of the indicated column have been dropped during the lifetime of the table.
EXAMPLES
SELECT dblink_build_sql_update('foo', '1 2', 2, '{"1", "a"}', '{"1", "b"}');
dblink_build_sql_update
-------------------------------------------------------------
UPDATE foo SET f1='1',f2='b',f3='1' WHERE f1='1' AND f2='b'
(1 row)
PostgreSQL 9.2.7 2014-02-17 DBLINK_BUILD_SQL_UPDATE(3)