05-22-2006
Help needed in awk
Hi All,
I am trying to manipulate a file using awk in UNIX. My file "test_file" is structured as follows:
field1:field2:field3
field4:field5:field6
field7:field8:field9
My requirement is to calculate another field (which would be let's say sum of 2nd and third column and put as fourth column in this file). so that my final output would be
field1:field2:field3:fieldA
field4:field5:field6:fieldB
field7:field8:field9:fieldC
where fieldA=field2 + field3 and so on...
I have the following piece of code which I guess, is nowhere in the working condition right now:
while read line
do
echo $line | awk -F: 'BEGIN {OFS=":"}
{$4=$2 + $3 ; print $0}' >> new_test_file
done < test_file
I read somewhere that you can dynamically calculate variables in awk, so $4 would be dynamically calculated at the run time. Subsequently when i print $0 should contain the new calculated field too. But I guess that is not the case.
Can anybody look into above and help me out?
Thanks
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I am trying to write a script that will parse out the e-mail address of a person from the name of a file in a directory.
Example:
filename is:
/home/myname/first.middle.last@email.com.xls
I want to extract just the email address and mail the file to that address.
I want to send the... (6 Replies)
Discussion started by: Drenhead
6 Replies
2. Shell Programming and Scripting
How do I alter this command so that it prints only the second comma delimited field from line number 3? Secondly, how do you redirect the output to a variable called TEST?
Thanks
(cat BATCH007.TXT | awk 'BEGIN { FS = "," } ; {print $2 }') (5 Replies)
Discussion started by: ddurden7
5 Replies
3. Shell Programming and Scripting
Hi ,
i have a file a.txt like this:
far
near
veryfar
toonear
typeset var1=veryfar
to extract the text between two strings i use the following command :
awk '/far/,$veryfar/' a.txt
its not working
can nyone tell pls whats wrong in it ?
i doubt can we use variable in awk like this... (3 Replies)
Discussion started by: santosh1234
3 Replies
4. UNIX for Dummies Questions & Answers
I have a log file monitor script that checks through a log file for a string. I use awk to search the log file, starting at the last checked line, for the specified string and then output the count and the last row number checked. The part of the script that does all the work is here:
set --... (6 Replies)
Discussion started by: mglenney
6 Replies
5. Shell Programming and Scripting
hi,
I have input file woth records as shown below
OCSMRC_OK,7057348733,+0.00,0,18/05/2010 23:42:19,BellMobility,302610000918553,0006056099,B30,686505,686505,OCS_MRC,+49.14,0,0
,0,0,
OCSPPKB_NOK,4163460120,+1.25,0,18/05/2010... (4 Replies)
Discussion started by: raghavendra.cse
4 Replies
6. UNIX for Dummies Questions & Answers
Dear all,
I am new to use unix. I run the following command and got the error. Anyone knows how should I modify the command. Thanks a lot!
$
for chr in 'seq 1 23';
do
awk 'BEGIN {print "T","pheno";}{print "M",$2}' out_${chr}.map > dat_${chr}.dat;
done
error message:... (2 Replies)
Discussion started by: forevertl
2 Replies
7. Shell Programming and Scripting
Hi,
i have input records as shown below.
4097,Probe3,G10,255,05/17/2011 12:44:03:185,NULL,05/17/2011 12:39:03:180,05/17/2011... (1 Reply)
Discussion started by: raghavendra.nsn
1 Replies
8. Shell Programming and Scripting
Hi Experts,
I have a file (file 1) with several columns and I need to create 2 files based on the data of 20th column of file 1.
Criteria 1 : If the 20th field of file1 is empty , copy the entire records to file 2.
I am successfully able to do this with the following awk code :
awk... (2 Replies)
Discussion started by: nua7
2 Replies
9. Shell Programming and Scripting
Hi Everyone,
i have following in my file
1
2
3
4
5
6
.
.
100
and now i want the output as
1 4 7 ..........so on..............97 100 (10 Replies)
Discussion started by: zozoo
10 Replies
10. Shell Programming and Scripting
Hi..
have a file as below, appreciate if someone can help on this
143|500| 10| 23353 22131 23355 23354 23358 23352 23357 23350 23349 23351| RAID5
213|1008| 9| 22419 22412 221 22413 22414 22416 22417 22415 22418| RAID6
1088|500| 5| 22243 22240 22244 22242 22241| RAID5
322|1200| 12|... (6 Replies)
Discussion started by: richard0@rediff
6 Replies
LEARN ABOUT DEBIAN
sniffit
SNIFFIT(5) File Formats Manual SNIFFIT(5)
NAME
sniffit - configuration file for sniffit (name arbirtary)
DESCRIPTION
This page describes the format for the config file for sniffit (see sniffit(8) ). This file allows you to specify in great detail witch
packets should be processed by sniffit. This file also controls (or will control) some functions for the continuous logging ('-L' option).
A sniffit config file might look like (Be sure to end it with a BLANK line):
# Sniffit Sample Config file -- Brecht Claerhout
logfile /var/log/sniffit.today.log
# First select all packets!
select both mhosts 1
select both mhosts 2
# Now deselect all packets from/to those damn 'surfers'
deselect both port 80
deselect both port 8001
This file will tell sniffit to process all packets on the subnet except those FROM/TO ports 80 and 8001 (thus we don't want logs of those
mass WWW connections witch turn our logs unreadable).
GLOBAL FORMAT
The file consists of lines, lines are formed by fields, fields are separated with SPACES (NO TABS). Unix comment lines (starting with '#'
are allowed). So this gives us:
<field1> <field2> <field3> <field4> <field5>
FIELD FORMAT
<field1>
select - Sniffit will look for packets that match the following description (other fields)
deselect - Sniffit will ignore packets that match the description
logfile - change the logfile name to <field2> instead of the default 'sniffit.log'
<field2>
from - Packets FROM the host matching the following desc. are considered.
to - similar, Packets TO the....
both - similar, Packets FROM or TO the....
a filename - as an argument of 'logfile' in <field1>
<field3>
host - The (de)selection criteria involves a hostname.
port - similar, ... a portnumber
mhosts - The (de)selection criteria involves multiple-hosts, like with the wildcars in 0.3.0, but without the 'x'
<field4>
Either a hostname, a portnumber, a service name or a numbet-dot partial notation indicating multiple hosts depending on <field3>
(service names like 'ftp' are resolved as the services available present on the host that runs Sniffit, and translated into a port
nr)
<field5>
A portnumber, if <field3> was 'host' or 'mhosts' (optional, if not filled in, all ports are going to be (de)selected)
FILE INTERPRETING
The config file is interpreted SEQUENTIAL, so watch it, don't mix lines in a file. Example:
select both mhosts 100.100.12.
deselect both port 80
select both host 100.100.12.2
This file will get you the packets:
a) Send by hosts '100.100.12.*'
b) EXCEPT the WWW packets
c) BUT showing the WWW packets concerning
100.100.12.2
select both mhosts 100.100.12.
select both host 100.100.12.2
deselect both port 80
Will give you the packets (probably unwanted result):
a) Send by hosts '100.100.12.*'
b) Send from/to 100.100.12.2 (useless line)
c) deselecting all WWW packets on the subnet
AUTHOR
Brecht Claerhout <coder@reptile.rug.ac.be>
SEE ALSO
sniffit(8)
SNIFFIT(5)