12-10-2016
You lost me. I couldn't imagine WHAT you really need.
In post#1, you cat all matching files into a pipe to awk and then sum into array a indexed by FILENAME. As there's only ONE single stream (by cat), there will be just one element with index "-".
- This has been cured in the proposals by greet_sed and RavinderSingh13.
Still your problem is not clear.
The count of lines with substr ($5,1,8) matching $DATE CANNOT depend on the index ($2 / $4 ?) of the a array. WHY should there be different counts (2540 <-> 2498)?
And, 20161208 doesn't match $5 in your sample, so count must be zero.
Why don't you take a step back and start over, carefully (re)formulating your specification, supplying a reasonable set of input data and a desired output format, and the logics connecting the two?
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hello,
i am trying to write a script file in awk which yields me the number of lines,characters and words, i checked it many many times but i am not able to find any mistake in it. Please tell me where i went wrong.
BEGIN{
print "Filename Lines Words Chars\n"
}
{
filename=filename + 1... (2 Replies)
Discussion started by: salman4u
2 Replies
2. Shell Programming and Scripting
I want to sort lines by how many times a string occurs in each line (the most times first).
I know how to do this in two passes (add a count field in the first pass then sort on it in the second pass).
However, can it be done more optimally with a single AWK command? My AWK has improved... (11 Replies)
Discussion started by: Michael Stora
11 Replies
3. Shell Programming and Scripting
HI Unix Gurus,
I have a number of SELECT count(*) statements in an input file and I want to execute it using a shell script but one by one using loop in script....
How can I do this..... (7 Replies)
Discussion started by: ustechie
7 Replies
4. Shell Programming and Scripting
We have an input file as follows:
2010-09-15-12.41.15
2010-09-15-12.41.15
2010-09-15-12.41.24
2010-09-15-12.41.24
2010-09-15-12.41.24
2010-09-15-12.41.24
2010-09-15-12.41.25
2010-09-15-12.41.26
2010-09-15-12.41.26
2010-09-15-12.41.26
2010-09-15-12.41.26
2010-09-15-12.41.26... (3 Replies)
Discussion started by: ux4me
3 Replies
5. Shell Programming and Scripting
Hi, how can I count the lines where a word appears in a file, using AWK?
Example:
file.txt:
gold 1588 France
gold 1478 Spain
silver 1596 France
emerald 1584 UK
diamond 1478 Germany
gold 1639 USA
Number of lines where gold in text is = 3
I've try this, but all I get is the number... (3 Replies)
Discussion started by: Godie
3 Replies
6. Shell Programming and Scripting
Hi ,
I have a file which has multiple rows of data, i want to match the pattern for two columns and if both conditions satisfied i have to add the counter by 1 and finally print the count value. How to proceed...
I tried in this way...
awk -F, 'BEGIN {cnt = 0} {if $6 == "VLY278" &&... (6 Replies)
Discussion started by: aemunathan
6 Replies
7. Shell Programming and Scripting
Hello fellow awkers,
I am trying to combine the following awk statements into 1 so that the results are more accurate:
awk '/\=\+/ { count++ } END { print count}' filename
awk '/\=\?/ { count++ } END { print count}' filename
awk '/\=\-/ { count++ } END { print count}' filename
awk... (8 Replies)
Discussion started by: ux4me
8 Replies
8. Shell Programming and Scripting
Is there an efficient awk that can count the number of lines that occur in between two tags.
For instance, consider the following text:
<s>
Hi PP -
my VBD -
name DT -
is NN -
. SENT .
</s>
<s>
Her PP -
name VBD -
is DT -
the NN -
same WRT -
. SENT -
</s>
I am interested to know... (4 Replies)
Discussion started by: owwow14
4 Replies
9. Shell Programming and Scripting
What i'm trying to do here is show X amount of lines before and after the string "serialNumber" is found.
BEFORE=3
AFTER=2
gawk '{a=$0} {count=0} /serialNumber/ && /./ {for(i=NR-'"${BEFORE}"';i<=NR;i++){count++ ;print a}for(i=1;i<'"${AFTER}"';i++){getline; print ; count ++; print... (5 Replies)
Discussion started by: SkySmart
5 Replies
10. Shell Programming and Scripting
I am trying to remove all the lines and spaces where the count in $4 or $5 is greater than 1 (more than 1 letter). The file and the output are tab-delimited. Thank you :).
file
X 5811530 . G C NLGN4X
17 10544696 . GA G MYH3
9 96439004 . C ... (1 Reply)
Discussion started by: cmccabe
1 Replies
wc(1) General Commands Manual wc(1)
NAME
wc - Counts the lines, words, characters, and bytes in a file
SYNOPSIS
wc [-c | -m] [-lw] [file...]
The wc command counts the lines, words, and characters or bytes in a file, or in the standard input if you do not specify any files, and
writes the results to standard output. It also keeps a total count for all named files.
STANDARDS
Interfaces documented on this reference page conform to industry standards as follows:
wc: XCU5.0
Refer to the standards(5) reference page for more information about industry standards and associated tags.
OPTIONS
Counts bytes in the input. Counts lines in the input. Counts characters in the input. Counts words in the input.
OPERANDS
Specifies the pathname of the input file. If this operand is omitted, standard input is used.
DESCRIPTION
A word is defined as a string of characters delimited by white space as defined in the X/Open Base Definitions for XCU4.
The wc command counts lines, words, and bytes by default. Use the appropriate options to limit wc output. Specifying wc without options
is the equivalent of specifying wc -lwc. If any options are specified, only the requested information is output.
The order in which counts appear in the output line is lines, words, bytes. If an option is omitted, then the corresponding field in the
output is omitted. If the -m option is used, then character counts replace byte counts.
When you specify one or more files, wc displays the names of the files along with the counts. If standard input is used, then no file name
is displayed.
EXIT STATUS
The following exit values are returned: Successful completion. An error occurred.
EXAMPLES
To display the number of lines, words, and bytes in the file text, enter: wc text
This results in the following output: 27 185 722 text
The numbers 27, 185, and 722 are the number of lines, words, and bytes, respectively, in the file text. To display only one or two
of the three counts include the appropriate options. For example, the following command displays only line and byte counts: wc -cl
text
27 722 text To count lines, words, and bytes in more than one file, use wc with more than one input file or with a file name pat-
tern. For example, the following command can be issued in a directory containing the files text, text1, and text2: wc -l text*
27 text 112 text1 5 text2 144 total
The numbers 27, 112, and 5 are the numbers of lines in the files text, text1, and text2, respectively, and 144 is the total number
of lines in the three files. The file name is always appended to the output. To obtain a pure number for things like reporting
purposes, pipe all input to the wc command using cat. For example, the following command will report the total count of characters
in all files in a directory. echo There are `cat *.c | wc -c` characters in *.c files
There are 1869 characters in *.c files
ENVIRONMENT VARIABLES
The following environment variables affect the execution of wc: Provides a default value for the internationalization variables that are
unset or null. If LANG is unset or null, the corresponding value from the default locale is used. If any of the internationalization vari-
ables contain an invalid setting, the utility behaves as if none of the variables had been defined. If set to a non-empty string value,
overrides the values of all the other internationalization variables. Determines the locale for the interpretation of sequences of bytes
of text data as characters (for example, single-byte as opposed to multibyte characters in arguments and input files) and which characters
are defined as white space characters. Determines the locale for the format and contents of diagnostic messages written to standard error
and informative messages written to standard output. Determines the location of message catalogues for the processing of LC_MESSAGES.
SEE ALSO
Commands: cksum(1), ls(1)
Standards: standards(5)
wc(1)