10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi,
how do i read a file using awk for a given no of line?
e.g
1. read only first 50 line.
2. read starting from line 20 to line 60..
thanks in advance.
-alva (8 Replies)
Discussion started by: alvagenesis
8 Replies
2. Shell Programming and Scripting
final.txt file contains
SY10020021 SY10023077 3199 4 803.815 11884 4 1825.22 2.2707
say
set FIRSTLINE = SY10020021
set SECONDLINE=SY10023077
cat final.txt | awk '{if($1==${FIRSTLINE} & $2==${SECONDLINE}){print $9}else{print "ll"}}'..............this should give me value... (1 Reply)
Discussion started by: Indra2011
1 Replies
3. Shell Programming and Scripting
Hi All,
Content of mydatafile-
Name Age
-------------- ---------------
Raju P 20 years
Hari 25 years
Priya S 30 years
I need output like-
The age of Raju P is 20 years
The age of Hari is 25 years
The age of Priya S is... (3 Replies)
Discussion started by: NARESH1302
3 Replies
4. Shell Programming and Scripting
Hi All,
Can some body help me in this to work
#!/bin/ksh
nof=`wc -l outFile_R.out | sed -e 's/*//g' `
no_of_lines=`expr $nof - 0`
z=1
while ]
do
cat outFile_R.out | awk -v I="$z" 'NR==I { print $0 }' | read from_date to_date id
echo "executing $from_date... (2 Replies)
Discussion started by: sol_nov
2 Replies
5. Shell Programming and Scripting
Hello,
I trying to extract text that is surrounded by xml-tags. I tried this
cat tst.xml | egrep "<SERVER>.*</SERVER>" |sed -e "s/<SERVER>\(.*\)<\/SERVER>/\1/"|tr "|" " "
which works perfect, if the start-tag and the end-tag are in the same line, e.g.:
<tag1>Hello Linux-Users</tag1>
... (5 Replies)
Discussion started by: Sebi0815
5 Replies
6. UNIX for Dummies Questions & Answers
I am wondering if anyone has any idea how to use an awk within awk to read files and find a match which adds to count.
Say I am searching how many times the word crap appears in each files within a directory. How would i do that from the command prompt ...
thanks (6 Replies)
Discussion started by: flevongo
6 Replies
7. Shell Programming and Scripting
I am trying to output the total number of records that have name and address within there specific fields i.e. $6 (surname) $9 (address). The file that redirects in is a csv file.
The code is wrong somewhere as i have another awk similar to this that reads in the same file and that works... (2 Replies)
Discussion started by: Pablo_beezo
2 Replies
8. Shell Programming and Scripting
Hi , i am having some problem with re-reading the same file in AWK.
here is the scenario.
function 1 {
some_string > " file1 " # i have redirected output to file1.
...........
........
}
Now in
function 2 {
... (1 Reply)
Discussion started by: madhaviece
1 Replies
9. Shell Programming and Scripting
Hi,
I need to read two colums(4th and 5th) from a file and do some manipulation
Input file is
401500 IOC Q 14 14
406200 LC Q 1 1
410124 IOC Q 5 4
410124 LC Q 11 8
410132 IOC Q 230 229
410148 IOC Q ... (3 Replies)
Discussion started by: rejirajraghav
3 Replies
10. Shell Programming and Scripting
Hi,
I've got a file like the following:
Starting to process segment 0 (and symmetry related segments)
Number of (cancelled) singularities: 0
Number of (cancelled) negative numerators: 0
Segment 0: 5.49secs
Starting to process segment 1 (and symmetry related segments)
Number of... (7 Replies)
Discussion started by: giorgos193
7 Replies
awk(1) awk(1)
NAME
awk - pattern scanning and processing language
SYNOPSIS
/usr/bin/awk [-f progfile] [-Fc] [ ' prog '] [parameters] [filename...]
/usr/xpg4/bin/awk [-FcERE] [-v assignment...] 'program' -f progfile... [argument...]
The /usr/xpg4/bin/awk utility is described on the nawk(1) manual page.
The /usr/bin/awk utility scans each input filename for lines that match any of a set of patterns specified in prog. The prog string must be
enclosed in single quotes ( ') to protect it from the shell. For each pattern in prog there can be an associated action performed when a
line of a filename matches the pattern. The set of pattern-action statements can appear literally as prog or in a file specified with the
-f progfile option. Input files are read in order; if there are no files, the standard input is read. The file name '-' means the standard
input.
The following options are supported:
-f progfile awk uses the set of patterns it reads from progfile.
-Fc Uses the character c as the field separator (FS) character. See the discussion of FS below.
USAGE
Input Lines
Each input line is matched against the pattern portion of every pattern-action statement; the associated action is performed for each
matched pattern. Any filename of the form var=value is treated as an assignment, not a filename, and is executed at the time it would have
been opened if it were a filename. Variables assigned in this manner are not available inside a BEGIN rule, and are assigned after previ-
ously specified files have been read.
An input line is normally made up of fields separated by white spaces. (This default can be changed by using the FS built-in variable or
the -Fc option.) The default is to ignore leading blanks and to separate fields by blanks and/or tab characters. However, if FS is assigned
a value that does not include any of the white spaces, then leading blanks are not ignored. The fields are denoted $1, $2, ...; $0 refers
to the entire line.
Pattern-action Statements
A pattern-action statement has the form:
pattern { action }
Either pattern or action can be omitted. If there is no action, the matching line is printed. If there is no pattern, the action is per-
formed on every input line. Pattern-action statements are separated by newlines or semicolons.
Patterns are arbitrary Boolean combinations ( !, ||, &&, and parentheses) of relational expressions and regular expressions. A relational
expression is one of the following:
expression relop expression
expression matchop regular_expression
where a relop is any of the six relational operators in C, and a matchop is either ~ (contains) or !~ (does not contain). An expression is
an arithmetic expression, a relational expression, the special expression
var in array
or a Boolean combination of these.
Regular expressions are as in egrep(1). In patterns they must be surrounded by slashes. Isolated regular expressions in a pattern apply to
the entire line. Regular expressions can also occur in relational expressions. A pattern can consist of two patterns separated by a comma;
in this case, the action is performed for all lines between the occurrence of the first pattern to the occurrence of the second pattern.
The special patterns BEGIN and END can be used to capture control before the first input line has been read and after the last input line
has been read respectively. These keywords do not combine with any other patterns.
Built-in Variables
Built-in variables include:
FILENAME name of the current input file
FS input field separator regular expression (default blank and tab)
NF number of fields in the current record
NR ordinal number of the current record
OFMT output format for numbers (default %.6g)
OFS output field separator (default blank)
ORS output record separator (default new-line)
RS input record separator (default new-line)
An action is a sequence of statements. A statement can be one of the following:
if ( expression ) statement [ else statement ]
while ( expression ) statement
do statement while ( expression )
for ( expression ; expression ; expression ) statement
for ( var in array ) statement
break
continue
{ [ statement ] ... }
expression # commonly variable = expression
print [ expression-list ] [ >expression ]
printf format [ ,expression-list ] [ >expression ]
next # skip remaining patterns on this input line
exit [expr] # skip the rest of the input; exit status is expr
Statements are terminated by semicolons, newlines, or right braces. An empty expression-list stands for the whole input line. Expressions
take on string or numeric values as appropriate, and are built using the operators +, -, *, /, %, ^ and concatenation (indicated by a
blank). The operators ++, --, +=, -=, *=, /=, %=, ^=, >, >=, <, <=, ==, !=, and ?: are also available in expressions. Variables can be
scalars, array elements (denoted x[i]), or fields. Variables are initialized to the null string or zero. Array subscripts can be any
string, not necessarily numeric; this allows for a form of associative memory. String constants are quoted (""), with the usual C escapes
recognized within.
The print statement prints its arguments on the standard output, or on a file if >expression is present, or on a pipe if '|cmd' is present.
The output resulted from the print statement is terminated by the output record separator with each argument separated by the current out-
put field separator. The printf statement formats its expression list according to the format (see printf(3C)).
Built-in Functions
The arithmetic functions are as follows:
cos(x) Return cosine of x, where x is in radians. (In /usr/xpg4/bin/awk only. See nawk(1).)
sin(x) Return sine of x, where x is in radians. (In /usr/xpg4/bin/awk only. See nawk(1).)
exp(x) Return the exponential function of x.
log(x) Return the natural logarithm of x.
sqrt(x) Return the square root of x.
int(x) Truncate its argument to an integer. It is truncated toward 0 when x > 0.
The string functions are as follows:
index(s, t)
Return the position in string s where string t first occurs, or 0 if it does not occur at all.
int(s)
truncates s to an integer value. If s is not specified, $0 is used.
length(s)
Return the length of its argument taken as a string, or of the whole line if there is no argument.
split(s, a, fs)
Split the string s into array elements a[1], a[2], ... a[n], and returns n. The separation is done with the regular expression fs or
with the field separator FS if fs is not given.
sprintf(fmt, expr, expr,...)
Format the expressions according to the printf(3C) format given by fmt and returns the resulting string.
substr(s, m, n)
returns the n-character substring of s that begins at position m.
The input/output function is as follows:
getline Set $0 to the next input record from the current input file. getline returns 1 for successful input, 0 for end of file, and
-1 for an error.
Large File Behavior
See largefile(5) for the description of the behavior of awk when encountering files greater than or equal to 2 Gbyte ( 2**31 bytes).
Example 1: Printing Lines Longer Than 72 Characters
The following example is an awk script that can be executed by an awk -f examplescript style command. It prints lines longer than seventy
two characters:
length > 72
Example 2: Printing Fields in Opposite Order
The following example is an awk script that can be executed by an awk -f examplescript style command. It prints the first two fields in
opposite order:
{ print $2, $1 }
Example 3: Printing Fields in Opposite Order with the Input Fields Separated
The following example is an awk script that can be executed by an awk -f examplescript style command. It prints the first two input fields
in opposite order, separated by a comma, blanks or tabs:
BEGIN { FS = ",[ ]*|[ ]+" }
{ print $2, $1 }
Example 4: Adding Up the First Column, Printing the Sum and Average
The following example is an awk script that can be executed by an awk -f examplescript style command. It adds up the first column, and
prints the sum and average:
{ s += $1 }
END { print "sum is", s, " average is", s/NR }
Example 5: Printing Fields in Reverse Order
The following example is an awk script that can be executed by an awk -f examplescript style command. It prints fields in reverse order:
{ for (i = NF; i > 0; --i) print $i }
Example 6: Printing All lines Between start/stop Pairs
The following example is an awk script that can be executed by an awk -f examplescript style command. It prints all lines between
start/stop pairs.
/start/, /stop/
Example 7: Printing All Lines Whose First Field is Different from the Previous One
The following example is an awk script that can be executed by an awk -f examplescript style command. It prints all lines whose first field
is different from the previous one.
$1 != prev { print; prev = $1 }
Example 8: Printing a File and Filling in Page numbers
The following example is an awk script that can be executed by an awk -f examplescript style command. It prints a file and fills in page
numbers starting at 5:
/Page/ { $2 = n++; }
{ print }
Example 9: Printing a File and Numbering Its Pages
Assuming this program is in a file named prog, the following example prints the file input numbering its pages starting at 5:
example% awk -f prog n=5 input
See environ(5) for descriptions of the following environment variables that affect the execution of awk: LANG, LC_ALL, LC_COLLATE,
LC_CTYPE, LC_MESSAGES, NLSPATH, and PATH.
LC_NUMERIC Determine the radix character used when interpreting numeric input, performing conversions between numeric and string val-
ues and formatting numeric output. Regardless of locale, the period character (the decimal-point character of the POSIX
locale) is the decimal-point character recognized in processing awk programs (including assignments in command-line argu-
ments).
See attributes(5) for descriptions of the following attributes:
/usr/bin/awk
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWesu |
+-----------------------------+-----------------------------+
|CSI |Not Enabled |
+-----------------------------+-----------------------------+
/usr/xpg4/bin/awk
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWxcu4 |
+-----------------------------+-----------------------------+
|CSI |Enabled |
+-----------------------------+-----------------------------+
|Interface Stability |Standard |
+-----------------------------+-----------------------------+
egrep(1), grep(1), nawk(1), sed(1), printf(3C), attributes(5), environ(5), largefile(5), standards(5)
Input white space is not preserved on output if fields are involved.
There are no explicit conversions between numbers and strings. To force an expression to be treated as a number, add 0 to it. To force an
expression to be treated as a string, concatenate the null string ("") to it.
22 Jun 2005 awk(1)