To write your first line of code shorter, you can do:
There is no need to store anything in a variable; print is not needed in this case since the default action of awk is to print.
For your question what the difference is:
In difference to your 1st line of code, this 2nd line does check for 2 conditions. The 1st is, that if there is a number of fields (NF) greater than zero, it will do the action in the curled brackets. It does this for every line of your input file. It also does this with all other actions and your next action for every line is to print the value of your variable s.
If s is not filled since NF was not true, it still has the former value stored and prints it. So it will give more output than the 1st command line where everything is inside one curled brackets.
With 1st command it will just pass the lines with NF being not true ie. pass the empty lines. In the 2nd command it will print out current value of s even if it hits a new line, since the second curled bracket has no condition in front of it and will always be executed.
I hope it was understandable
Last edited by zaxxon; 12-30-2009 at 07:09 AM..
Reason: Trying to explain better ^^
I'm having a file with 5 fields.
I want to sort that file according to one field
no 3. How shall I do using awk programming.
Any input appreciatable.
regards,
vadivel. (7 Replies)
hi
how to get the values in two columns (may be 2nd and 5th column) of a file line by line.
either i want to get the two fields into different variables and use a for loop to get these values line by line. (3 Replies)
i have a file like this:
awk.lst
smith : sales : 1200 : 2
jones:it:25000 : 2
roger : it : 1500 : 2
ravi | acct | 15000
i have 3 doubts
1)
when i say
awk -F ":" '$2 ~ /'it'/ {print $0}' awk.lst
i am not able to get jones in the ouput , is it because of space issue?
2)how to... (2 Replies)
Hello people
I have a doubt about awk... I´m using it to create a condition where I do not want to use the 0 (zero) value of a certain column.
- This is the original file:
string,number,date
abc,0,20050101
def,1,20060101
ghi,2,20040101
jkl,12,20090101
mno,123,20020101... (2 Replies)
I have executed the below command:
find . -name "Ks*" -type f -exec ls -ltr {} \; | awk '{printf("%ld %s %d %s \n",$5,$6,$7,$8,$9)}'
and here is the output:
1282 Oct 7 2004
51590 Jul 10 2006
921 Oct 7 2004
1389 Jun 4 2003
1037 May 19 2004
334 Mar 24 2004
672 Jul 8 2003
977... (6 Replies)
instead of writing print command in awk, i saw in some posts that we can simply write a number before we end the awk command and it will print the file.
As given below:
$awk '{some manipulation; print}' filename
$awk '{some manipulation}1' filename
I also tried replacing the... (2 Replies)
DE_CODE|1{AXXANY}1APP_NAME|2{TELCO}2LOC|NY
DE_CODE|1{AXXATX}1APP_NAME|2{TELCO}2LOC|TX
DE_CODE|1{AXXABT}1APP_NAME|2{TELCO}2LOC|BT
DE_CODE|1{AXXANJ}1APP_NAME|2{TELCO}2LOC|NJ
i have out put file like below i have to convert it in the format as below.
DE_CODE = AXXANY
APP_NAME= TELCO
LOC = NY... (4 Replies)
Hi,
I got a below requirement from this forum, but the solution provided was not clear.
Below is the requirement
Input file
A 1 Z
A 1 ZZ
B 2 Y
B 2 AA
Required output
B Y|AA
A Z|ZZ (5 Replies)
Discussion started by: stew
5 Replies
LEARN ABOUT PHP
trap
trap(1) User Commands trap(1)NAME
trap, onintr - shell built-in functions to respond to (hardware) signals
SYNOPSIS
sh
trap [ argument n [n2...]]
csh
onintr [-| label]
ksh
*trap [ arg sig [ sig2...]]
DESCRIPTION
sh
The trap command argument is to be read and executed when the shell receives numeric or symbolic signal(s) (n). (Note: argument is scanned
once when the trap is set and once when the trap is taken.) Trap commands are executed in order of signal number or corresponding symbolic
names. Any attempt to set a trap on a signal that was ignored on entry to the current shell is ineffective. An attempt to trap on signal 11
(memory fault) produces an error. If argument is absent all trap(s) n are reset to their original values. If argument is the null string
this signal is ignored by the shell and by the commands it invokes. If n is 0 the command argument is executed on exit from the shell. The
trap command with no arguments prints a list of commands associated with each signal number.
csh
onintr controls the action of the shell on interrupts. With no arguments, onintr restores the default action of the shell on interrupts.
(The shell terminates shell scripts and returns to the terminal command input level). With the - argument, the shell ignores all inter-
rupts. With a label argument, the shell executes a goto label when an interrupt is received or a child process terminates because it was
interrupted.
ksh
trap uses arg as a command to be read and executed when the shell receives signal(s) sig. (Note that arg is scanned once when the trap is
set and once when the trap is taken.) Each sig can be given as a number or as the name of the signal. trap commands are executed in order
of signal number. Any attempt to set a trap on a signal that was ignored on entry to the current shell is ineffective. If arg is omitted
or is -, then the trap(s) for each sig are reset to their original values. If arg is the null (the empty string, e.g., "" ) string then
this signal is ignored by the shell and by the commands it invokes. If sig is ERR then arg will be executed whenever a command has a non-
zero exit status. If sig is DEBUG then arg will be executed after each command. If sig is 0 or EXIT for a trap set outside any function
then the command arg is executed on exit from the shell. The trap command with no arguments prints a list of commands associated with each
signal number.
On this man page, ksh(1) commands that are preceded by one or two * (asterisks) are treated specially in the following ways:
1. Variable assignment lists preceding the command remain in effect when the command completes.
2. I/O redirections are processed after variable assignments.
3. Errors cause a script that contains them to abort.
4. Words, following a command preceded by ** that are in the format of a variable assignment, are expanded with the same rules as a vari-
able assignment. This means that tilde substitution is performed after the = sign and word splitting and file name generation are not
performed.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWcsu |
+-----------------------------+-----------------------------+
SEE ALSO csh(1), exit(1), ksh(1), sh(1), attributes(5)SunOS 5.10 23 Oct 1994 trap(1)