awk syntax problem


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting awk syntax problem
# 1  
Old 06-19-2013
awk syntax problem

Hi,

I am using this awk command in my shell script :

Code:
find . -name "*" -ctime -6 | xargs cat | grep -E -v ^fileName\|^\([0-9]\) | awk -v DATE="${CURR_DATE}" -v DATE_LOG=$DATE_SYS 'BEGIN {FS=";";OFS=";";CONVFMT="%.9g";OFMT="%.9g"} {{clef="2-PARSING_ERROR;"DATE";"DATE_LOG";"substr($0,12,8)";"substr($0,5,6}";NS;NS;"$3 ; tab[clef]++;}} END {for (clef in tab) {print tab[clef],clef;}}'

it is throwing error :

awk: syntax error Context is:
>>> DATE";"DATE_LOG";"substr($0,12,8)";"substr($0,5,6} <<<


I am not getting what is the issue?

Regards

Abhinav

---------- Post updated at 09:18 PM ---------- Previous update was at 09:13 PM ----------

But when I run it like this :

Code:
find . -name "*" -ctime -6 | xargs cat | grep -E -v ^fileName\|^\([0-9]\) | awk -v DATE="${CURR_DATE}" -v DATE_LOG=$DATE_SYS 'BEGIN {FS=";";OFS=";";CONVFMT="%.9g";OFMT="%.9g"} {{clef="2-PARSING_ERROR;"DATE";"DATE_LOG";"substr($0,12,8)";substr($0,5,6};NS;NS;"$3"" ; tab[clef]++;}} END {for (clef in tab) {print tab[clef],clef;}}'

it runs fine but in the output substr($0,5,6} is printed as it is

I am not getting how to fix this.
# 2  
Old 06-19-2013
Please note that it always helps to understand issues better if you properly intent your code.

I'm not sure what you are trying to achieve, but I made few corrections in your awk code. See if it helps:
Code:
find . -name "*" -ctime -6 | xargs cat | grep -E -v ^fileName\|^\([0-9]\) | awk -v DATE="${CURR_DATE}" -v DATE_LOG="$DATE_SYS" '
        BEGIN {
                FS = ";"
                OFS = ";"
                CONVFMT = "%.9g"
                OFMT = "%.9g"
        }
        {
                clef = "2-PARSING_ERROR;" DATE ";" DATE_LOG ";"
                substr ( $0, 12, 8) ";" substr ( $0, 5, 6 ) ";NS;NS;" $3
                tab[clef]++
        }
        END {
                for (clef in tab)
                {
                        print tab[clef],clef
                }
        }
'

# 3  
Old 06-19-2013
Thanks for the reply yoda..

Sorry the code is not intented.. I will keep that in mind for future.

What I am trying to do is..

finding some files and using the contents of the file to create a line as in the post and then will redirect to a file.
I am using array to count number of records in a file.

I couldnot think of better idea for this..
Please guide..

Was there any syntax error in the post?
# 4  
Old 06-19-2013
Yes, I noticed few syntax errors and corrected them, but I didn't test it.

Did you try running it? Are you getting the expected output?

If no, post a sample from input file and desired output.
# 5  
Old 06-19-2013
A case for the eye doctor: the terminating bracket must be ) not }
Code:
substr($0,5,6)

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk problem with syntax

awk -v sw="lemons|dogs" 'NR>100 && NR<200 BEGIN { c=split(sw,a,""); } { for (w in a) { if ($0 ~ a) d]++; } } END { for (i in a) { o=o (a"="(d]?d]:0)","); } sub(",*$","",o); print o; }' /home/jahitt/data.txt what am i doing wrong with the above code? im pretty sure the issue is in the... (6 Replies)
Discussion started by: SkySmart
6 Replies

2. Shell Programming and Scripting

Problem with if-else syntax

I'm calling the following if-else from nawk. But I keep getting an error at the "else". I've tried putting more brackets and ; but still I get complaints about the "else". Any ideas ? Thanks, wbrunc BEGIN { FS = "," ; OFS = "," } { if ( $8 ~ /A/ && $9 == B ) $1="4/29/2013" ; $2="J.Doe"... (2 Replies)
Discussion started by: wbrunc
2 Replies

3. Shell Programming and Scripting

Help with awk syntax error problem asking

Input file: 703 1192 720 1162 316 380 1810 439 1969 874 Desired output file: 3 3 awk code that I tried: (1 Reply)
Discussion started by: perl_beginner
1 Replies

4. Shell Programming and Scripting

Syntax Problem with awk

Hello, I have perl script,which take some part of data in the file. the below command works fine in normal cmd prompt. `awk '/CDI/ && // && !/Result for/ {print $3 $5 > "final.txt"}' datalist.txt`; `nawk -F"" '{print $2}' finalcdi.txt`; But not working. Please use code tags, thanks. (5 Replies)
Discussion started by: rasingraj
5 Replies

5. Shell Programming and Scripting

Problem with awk syntax

Hi, Below is the code I am using. I am trying to list only those numbers which has a + symbol in it cat num | awk -F"+" '{if (/^$/) { } else {if ( $0 ~ egrep "^+$" ) { if ( $0 ~ grep "+" ) {print $0} } }}' I am getting the following error: awk: 0602-521 There is a... (7 Replies)
Discussion started by: sudvishw
7 Replies

6. Shell Programming and Scripting

Problem with syntax using awk

Hi Guys, When below code is executed in script, I get desired output in output file. awk 'NR >= $start_line && NR <= 3' master_scriptlist.txt > $driver1/scriptlist.txtBut when i replace 3 with a variable end_line=3, I do not get ouput. See code below. Is there any problem with syntax awk... (6 Replies)
Discussion started by: ajincoep
6 Replies

7. Programming

Syntax Problem in Query

Hey guys, i am having a problem in my query statement. I am using Mysql in Netbeans and c++. What i am trying to do is for the user to enter a certain value and then the program will store the value into the database... string NewMovie ; Cout <<" Enter your new movie : " << endl ; ... (1 Reply)
Discussion started by: gregarion
1 Replies

8. Shell Programming and Scripting

remote awk syntax problem

Hi there If i run this command on my Linux box directly, i get the desired result # ipmitool fru | gawk '!NF{f=0}/mb.net0.fru/{f=1}/Product Serial/&&f{print $NF}' 00:AA:4F:A6:A6:C4 however, if i try to run it from a remote server (using SSH) and populating a variable with the result,... (5 Replies)
Discussion started by: hcclnoodles
5 Replies

9. Shell Programming and Scripting

syntax problem

Dear friends, I am writing shell script in csh . i want to make arthimatic operation in csh. i wrote sysntax like this. set val = 230 set tmp = `0.1 * $val + 300` echo $tmp but it is not working . anyone please give me syntax. (3 Replies)
Discussion started by: rajan_ka1
3 Replies

10. Shell Programming and Scripting

syntax problem

dear friends, I have a large size file containg two fields data like this *** **** 122 222 ***** ***** ***** ***** 232 233 i have file like this. i want to remove blank lines from file . i think awk is servive this problem i wrote a awk command but the error is... (3 Replies)
Discussion started by: rajan_ka1
3 Replies
Login or Register to Ask a Question