Syntax Problem with awk


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Syntax Problem with awk
# 1  
Old 08-24-2011
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.
Code:
`awk '/CDI/ && /[A-Z][0-9]/ && !/Result for/ {print $3 $5 > "final.txt"}' datalist.txt`;

`nawk -F"[)(]" '{print $2}' finalcdi.txt`;

But not working.

Moderator's Comments:
Mod Comment Please use code tags, thanks.

Last edited by zaxxon; 08-24-2011 at 08:12 AM.. Reason: code tags
# 2  
Old 08-24-2011
Afaik Perl does not know about backticks. If you want to execute system commands, system() function might be a better choice:
system - perldoc.perl.org
Perl is able to parse text with regular expressions too.
# 3  
Old 08-24-2011
Perl knows about backticks but it interprets them as strings in double quotes and make interpolation of variables. So $1, etc. are perl variables, not awks. But you can use:
Code:
qx' cmd '

to prevent this.
# 4  
Old 08-25-2011
I have given like below but it gives syntax error near "/ && ".Execution aborted.

Code:
qx 'awk '/CDI/ && /[A-Z][0-9]/ && !/Result for/ {print $3 $5 > "final.txt"}' datalist.txt'

Moderator's Comments:
Mod Comment To make code tags work, you have to put [ and ] around them.


---------- Post updated at 05:32 PM ---------- Previous update was at 04:48 PM ----------

hi,

even i tried using system command as below.it is executing the command but error comes.

code:
system ("awk '/CDI/ \&& /[A-Z][0-9]/ \&& \!/Result for/ {print \$3 \$5 > "final.txt"}' datalist.txt");
code/

It gives error

awk:syntax error near line1
awk:illegal statement near line1

Last edited by zaxxon; 08-25-2011 at 08:55 AM.. Reason: code tags
# 5  
Old 08-25-2011
This is because you have double quotes in your awk script, around the filename, final.txt:
Quote:
system ("awk '/CDI/ \&& /[A-Z][0-9]/ \&& \!/Result for/ {print \$3 \$5 > "final.txt"}' datalist.txt");
I don't believe you need this. If you do, you can escape it by using the backslash (\), before each of them. The result should look like - \"final.txt\".

- GP
# 6  
Old 08-25-2011
This worked for me , inside perl

Code:
 
@v = `awk '/CDI/ && /[A-Z][0-9]/ && !/Result for/ {print \$1 \$2 > "final.txt"}' input_file`;

My system is :
Code:
  
uname -a
HP-UX avalon B.11.11 U 9000/800 3547052374 unlimited-user license

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

awk syntax problem

Hi, I am using this awk command in my shell script : find . -name "*" -ctime -6 | xargs cat | grep -E -v ^fileName\|^\(\) | awk -v DATE="${CURR_DATE}" -v DATE_LOG=$DATE_SYS 'BEGIN {FS=";";OFS=";";CONVFMT="%.9g";OFMT="%.9g"}... (4 Replies)
Discussion started by: abhi1988sri
4 Replies

3. 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

4. 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

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