02-27-2020
Yes, $2 (USER=MICKEY) is split at the equals sign into array T , and then rebuilt with the lower case username in T[2].
The !a[$0]++ is a trick (independent of $2): a[$0] evaluates to FALSE if it equals zero or doesn't exist or is created on first reference, so its negation is TRUE and triggers the default action: print. Then it is "post incremented" and will never (OK, not until reaching / crossing MAX_INT) trigger again. So any further occurrences of $0 are suppressed.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Hi,
Let's say that I have a file called table, I know that if I need to see a the second column for exampls I use:
awk ' {print $2}' table.txt
Is there anyway to use awk to actually cut a column and put it somewhere else in the table?:confused: (8 Replies)
Discussion started by: cosmologist
8 Replies
2. Shell Programming and Scripting
Hi i need a favour
i have a file which has some trillions of records. The file is like this
11111000000000192831840914000000000000000000000000000
45789899090000000000000000011111111111111111111111111
I want to cut specific postions in each line like cut1-3 and assisgn it to a variable and... (5 Replies)
Discussion started by: richa2.m
5 Replies
3. Shell Programming and Scripting
hi,
I have a file with content like this for an employee:
EmployeeID
101
Day_type, day
vacation,1/2/2009
sick day, 3/2/2009
personal day, 4/5/2009
jury duty day, 5/5/2009
how do I make the result to show:
EmployeeID,Day_type,day
101,vacation,1/2/2009
101,sick day,... (6 Replies)
Discussion started by: jbchen
6 Replies
4. UNIX for Advanced & Expert Users
Hello,
I had posted earlier about printing fields using AWK, but now I have a slightly different problem. I have text files in the format:
1*2,3,4,5
and wish to print the first, third, and fifth fields, including the asterisk and commas. In other words, after filtering it should look... (1 Reply)
Discussion started by: Jahn
1 Replies
5. Shell Programming and Scripting
Hi,
Need a help with shell script. I have to search for a string in one of the file, if match found, copy the line to a new file and delete the line from the exisiting file.
eg:
83510000000000063800000.1800000.1600000.1600000.2400000.1800000.2000000.21... (6 Replies)
Discussion started by: gpaulose
6 Replies
6. Shell Programming and Scripting
Hi Everyone,
# cat 1.txt
1321631,77770132976455,19,20091001011859,20091001011907
1321631,77770132976455,19,20091001011859,20091001011907
1321631,77770132976455,19,20091001011859,20091001011907
# cat 1.txt | awk -F, '{OFS=",";print $1,$3,$4,$5}'
1321631,19,20091001011859,20091001011907... (7 Replies)
Discussion started by: jimmy_y
7 Replies
7. Shell Programming and Scripting
I have a file and need to only select users that have a shell of “/bin/bash” in the line using awk or sed please help (4 Replies)
Discussion started by: boyboy1212
4 Replies
8. UNIX for Advanced & Expert Users
Hi,
I've got a query regarding which of the following is more efficient & why -
cat <filename>|cut -d'*' -f2- > <newfilename>
or
cut -d'*' -f2- <filename> > <newfilename>
Thanks. (17 Replies)
Discussion started by: sumoka
17 Replies
9. Shell Programming and Scripting
I have a file which contains 3 fields separated by tabs example
andrew kid baker
I need to swap kid and baker using cut and paste commands how is this to be done?
Thanks (3 Replies)
Discussion started by: drew211
3 Replies
10. Shell Programming and Scripting
i have file as with the below content
aaa.bbb.cc.dd
aaa.fff.bb
yyyyy.rrrrr.ggggg.iii
wwww.w.r.ty
i want the o/p as below
dd
bb
iii
ty
but i dont want to use awk. is there any other way to do this ? (5 Replies)
Discussion started by: anandgodse
5 Replies
CUT(1) BSD General Commands Manual CUT(1)
NAME
cut -- select portions of each line of a file
SYNOPSIS
cut -b list [-n] [file ...]
cut -c list [file ...]
cut -f list [-d delim] [-s] [file ...]
DESCRIPTION
The cut utility selects portions of each line (as specified by list) from each file and writes them to the standard output. If the file
argument is a single dash ('-') or no file arguments were specified, lines are read from the standard input. The items specified by list can
be in terms of column position or in terms of fields delimited by a special character. Column numbering starts from 1.
list is a comma or whitespace separated set of increasing numbers and/or number ranges. Number ranges consist of a number, a dash (-), and a
second number and select the fields or columns from the first number to the second, inclusive. Numbers or number ranges may be preceded by a
dash, which selects all fields or columns from 1 to the first number. Numbers or number ranges may be followed by a dash, which selects all
fields or columns from the last number to the end of the line. Numbers and number ranges may be repeated, overlapping, and in any order. It
is not an error to select fields or columns not present in the input line.
The options are as follows:
-b list The list specifies byte positions.
-c list The list specifies character positions.
-d string Use the first character of string as the field delimiter character. The default is the <TAB> character.
-f list The list specifies fields, separated by the field delimiter character. The selected fields are output, separated by the field
delimiter character.
-n Do not split multi-byte characters.
-s Suppresses lines with no field delimiter characters. Unless specified, lines with no delimiters are passed through unmodified.
EXIT STATUS
cut exits 0 on success, 1 if an error occurred.
SEE ALSO
paste(1)
STANDARDS
The cut utility conforms to IEEE Std 1003.2-1992 (``POSIX.2'').
BSD
December 21, 2008 BSD