Illegal Statement at source line 2


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Illegal Statement at source line 2
# 1  
Old 01-19-2009
Illegal Statement at source line 2

Hello

I'm pretty new to Shell Programming and I'm trying to write a script to display the out of a file displaying licence-use for an application. I've piped the output of my licence-use query to a file. On this file I am trying to run the following awk file, but I keep getting the error:

bash-3.00$ nawk -f ~/viewlicences.awk ~/licences

nawk: syntax error at source line 2
context is
if ($0 /Users of >>> SYNERGY-CMBase/) <<<
nawk: illegal statement at source line 2


This is my awk script that I'm trying to run on the file:

1 {
2 if ($0 [/Users of SYNERGY-CMBase/])
3 {
4 while ("x" == "x")
5 {
6 getline var
7 if (var == "") { continue }
8 if (var != /Users of SYNERGY-GroupSecurity/) { print var } else { exit }
9 }
10 }
11 }


I'm basically trying to capture output between the line which which says "Users of SYNERGY-CMBase" and Users of "SYNERGY-GroupSecurity".

Any advice would be greatly appreciated. Smilie
# 2  
Old 01-19-2009
Question

Your line 2 does not appear to be of proper syntax. Are you trying to say
if $0=="/Users of >>> SYNERGY-CMBase/"

Otherwise, can you attach a section of the file you are trying to read a line from?
# 3  
Old 01-19-2009
Here's the file I'm trying to read from. I'm wanting to display output from line 26 up until before line 36...

1 lmutil - Copyright (c) 1989-2006 Macrovision Europe Ltd. and/or Macrovision Corporation. All Rights Reserved.
2 Flexible License Manager status on Mon 1/19/2009 13:06
3
4 License server status: ##########
5 License file(s) on #############:
6
7 #########: license server UP (MASTER) v10.8
8
9 Vendor daemon status (on ########):
10
11 telelogic: UP v10.8
12
13 Feature usage info:
14
15 Users of Telelogic_Support: (Total of 1000 licenses issued; Total of 0 licenses in use)
16
17 Users of SYNERGY-ActiveCM: (Total of 10 licenses issued; Total of 0 licenses in use)
18
19 Users of SYNERGY-ChangeBase: (Total of 11 licenses issued; Total of 1 license in use)
20
21 "SYNERGY-ChangeBase" v2009.1230, vendor: telelogic
22 floating license
23
24 ccm_root phys-agsdev /dev/tty ChangeAdmin (v1.0) (Phys-agsdev/19353 580), start Mon 1/19 6:30 (linger: 1800)
25
26 Users of SYNERGY-CMBase: (Total of 12 licenses issued; Total of 4 licenses in use)
27
28 "SYNERGY-CMBase" v2009.1230, vendor: telelogic
29 floating license
30
31 ccm_root phys-agsdev /dev/tty z000798 (v1.0) (Phys-agsdev/19353 436), start Mon 1/19 10:54
32 ccm_root phys-agsdev /dev/tty z001383 (v1.0) (Phys-agsdev/19353 2014), start Mon 1/19 11:22
33 ccm_root phys-agsdev /dev/pts/10 u025027 (v1.0) (Phys-agsdev/19353 794), start Mon 1/19 9:54
34 ccm_root phys-agsdev /dev/pts/27 u414020 (v1.0) (Phys-agsdev/19353 273), start Mon 1/19 12:02
35
36 Users of SYNERGY-GroupSecurity: (Total of 20 licenses issued; Total of 0 licenses in use)
37
38 Users of SYNERGY-ObjectMake: (Total of 10 licenses issued; Total of 0 licenses in use)
39
40 Users of SYNERGY-OracleSupport: (Total of 1 license issued; Total of 0 licenses in use)
41
# 4  
Old 01-19-2009
Question

1) Does your file normally have line numbers, or is that something you added to make it easier to read?
2) Always at line 26, or just in this example?
# 5  
Old 01-19-2009
No, I just put them in for the sake of readability. The line numbers themselves are largely irrelevant because depending on the number of licences in use, there may be more less entries in the file for each licence type.
# 6  
Old 01-19-2009
Tools Here is one way to approach your problem

Code:
> cat manip144.sh
# set filename
myf="file144"

# find first line
stlin=`cat -n ${myf} | grep "Users of SYNERGY-CMBase" | awk '{print $1}' `
#echo ${stlin}
# find ending line
enlin=`tail +${stlin} ${myf} | cat -n | grep "Users of SYNERGY-GroupSecurity" | awk '{print $1}' `
#echo ${enlin}

tail +${stlin} ${myf} | head -${enlin}


> manip144.sh
26 Users of SYNERGY-CMBase: (Total of 12 licenses issued; Total of 4 licenses in use)
27
28 "SYNERGY-CMBase" v2009.1230, vendor: telelogic
29 floating license
30
31 ccm_root phys-agsdev /dev/tty z000798 (v1.0) (Phys-agsdev/19353 436), start Mon 1/19 10:54
32 ccm_root phys-agsdev /dev/tty z001383 (v1.0) (Phys-agsdev/19353 2014), start Mon 1/19 11:22
33 ccm_root phys-agsdev /dev/pts/10 u025027 (v1.0) (Phys-agsdev/19353 794), start Mon 1/19 9:54
34 ccm_root phys-agsdev /dev/pts/27 u414020 (v1.0) (Phys-agsdev/19353 273), start Mon 1/19 12:02
35
36 Users of SYNERGY-GroupSecurity: (Total of 20 licenses issued; Total of 0 licenses in use)

Note that I simply copied your sample text file; hence the line numbers still being there.
# 7  
Old 01-19-2009
Joeyg, many thanks for your help. Just before you had posted that, I changed my script to:

if ($0 ~ /Users of SYNERGY-CMBase:/) {print}
if ($0 ~ /"SYNERGY-CMBase"/)
{
while ("x" == "x")
{
getline var
if (var ~ /floating license/) {continue}
if (var == "") { continue }
if (var !~ /Users of SYNERGY-GroupSecurity/) {print var} else {exit}
}
}
}


which gives me the output:

Users of SYNERGY-CMBase: (Total of 12 licenses issued; Total of 3 licenses in use)
ccm_root phys-agsdev /dev/pts/67 u414014 (v1.0) (Phys-agsdev/19353 2477), start Mon 1/19 13:16
ccm_root phys-agsdev /dev/pts/19 z311203 (v1.0) (Phys-agsdev/19353 1449), start Mon 1/19 13:45
ccm_root phys-agsdev /dev/pts/104 u006134 (v1.0) (Phys-agsdev/19353 2017), start Mon 1/19 15:31


I'm now going to try and insert headers for username and process ID etc.

Thanks again. Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Source command returns error when it strikes conditional statement "ifeq"

Hello All, I am running source command on my project configuration file app.cfg which has conditional statements with make file systax E.g ifeq ($(APP_CMP_DIR),trunk). When I source this file it throws error: syntax error near unexpected token... (1 Reply)
Discussion started by: anand.shah
1 Replies

2. Shell Programming and Scripting

Read: line 6: illegal option -e

For some reason read -e isn't working in my script. I need a directory as input from a user and I'd like for them to be able to use tab complete which is why I'm using -e. When the script is run, I get: read: line 6: illegal option -e In order to just figure out what is going on with the -e... (4 Replies)
Discussion started by: orangeSunshine
4 Replies

3. Shell Programming and Scripting

Help with finding last line of file: if statement depending on that line.

Good morning, My first time actually posting in this forum, though I have used this forum to help with numerous projects. I am trying to figure out why my if statement does not work. I have a file where a line is inputted every 15 seconds. I want this if statement to check what the last line... (3 Replies)
Discussion started by: Shanrunt
3 Replies

4. Shell Programming and Scripting

I want a count only when couple of value exist in each line of my source.

I have to get the count only if poc=4060 and loc=JPN ( basically I want to check both values exist then count the occurrences.) disp0201.php?poc=4060&roc=1&ps=R&ooc=13&mjv=6&mov=5&rel=5&bod=155&oxi=2&omj=5&ozn=1&dav=20&cd=&daz=& drc=&mo=&sid=&lang=EN&loc=JPN I have been trying like this... (2 Replies)
Discussion started by: elamurugu
2 Replies

5. Shell Programming and Scripting

Awk help with source and previous line loop

Hello, I've written a ksh awk script to ping multiple servers and write the results to a file. That part is working ok. I then want to extract the names of only the server which are available. This is indicated by '1 packets received'. The server name actually appears above that line so I found... (4 Replies)
Discussion started by: Grueben
4 Replies

6. UNIX for Dummies Questions & Answers

nawk: syntax error at source line 11

Hi, I executing a awk in a shell script. A part of AWK is: nawk -F"¤" -v fichero=${DIRECTORIO_PARAMETROS}/${FICHERO_CONFIGURACION_CHEQUEOS} -v sistema=${SISTEMA_SEDRA} -v fichero_no_validos="No_validos_CAMPO_TIPO_${SIST}.dat" 'BEGIN{ if ( fichero != "") { ... (4 Replies)
Discussion started by: pepeli30
4 Replies

7. Shell Programming and Scripting

nawk: illegal statement at source line 1

Hello Everyone, I don't know what is wrong with this: Is it that nawk cannot run a ".sh" script or is it not treating "." as a literal. If so how to make "." be treated as a literal in "nawk" statemnts? Thanks in Advance (2 Replies)
Discussion started by: bhaire
2 Replies

8. Shell Programming and Scripting

Output of both the echo statement in one line

I have script like echo -n FINISHED FEXP: ${TABLE2EXP} echo $STATUS I want the output of both the echo statement in one line How can i do this (3 Replies)
Discussion started by: scorp_rahul23
3 Replies

9. UNIX for Dummies Questions & Answers

single line if statement

hi, i wonder if someone could tell me how to properly convert the following code onto one line: if then print "The file was not copied" exit 1 fi i am not sure how to close off the if statement here. everything i try gives me "syntax error: `if' unmatched" if... (2 Replies)
Discussion started by: ankimo
2 Replies

10. UNIX for Dummies Questions & Answers

grep entire statement not just line

(extract from SQL binlog file...) # at 4960 #080801 14:35:31 server id 4 end_log_pos 195 Query thread_id=63121426 exec_time=0 error_code=0 use d_jds; SET TIMESTAMP=1217581531; UPDATE bid_details set bidding = 3170.37 ,deduction=if((3170.37 < 37.43),0,deduction) where... (3 Replies)
Discussion started by: shantanuo
3 Replies
Login or Register to Ask a Question