Visit Our UNIX and Linux User Community


awk Strange behaviour in AIX


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting awk Strange behaviour in AIX
# 1  
Old 05-21-2014
awk Strange behaviour in AIX

Can someone please explain the strange behaviour.. I was just trying a few things to learn awk..

in the below code when I start the braces in the same line, the output is as expected, when I start at next line, output is displayed twice.

Please see the file, code I tried and output below.

File contents:

cat d_exp
BEG
Id Job1
Id Stage1
1
EN
Id Job2
Id Stage2
BEG
Id2 Job3
Id Stage4
2
EN

Code:
awk '/BEG/,/EN/ {
print
}' d_*
-- Output as expected
BEG
  Id  Job1
  Id  Stage1
1
EN
BEG
  Id2 Job3
  Id  Stage4
2
EN

Braces in next line
 
awk '/BEG/,/EN/
{  #Next line
print
}' d_*

BEG
BEG
  Id  Job1
  Id  Job1
  Id  Stage1
  Id  Stage1
1
1
EN
EN
  Id  Job2
  Id  Stage2
BEG
BEG
  Id2 Job3
  Id2 Job3
  Id  Stage4
  Id  Stage4
2
2
EN
EN


Everyline is printed twice in the above output

Can someone please explain this? What am I missing here?

Last edited by Kulasekar; 05-21-2014 at 01:26 PM.. Reason: Could not complete the pervious message
# 2  
Old 05-21-2014
Yes? where is it then?
# 3  
Old 05-21-2014
Simple

Code:
awk '/BEG/,/EN/
{  #Next line
print
}' d_*

is not equal to

Code:
awk '/BEG/,/EN/{ print }' d_*

as you can see newline

Example see difference
Code:
akshay@Aix:~$ echo 1 | awk '/1/ \
{print}'
1

Code:
akshay@Aix:~$ echo 1 | awk '/1/  
{print}'
1
1


Quote:
Originally Posted by Kulasekar
Can someone please explain the strange behaviour.. I was just trying a few things to learn awk..

in the below code when I start the braces in the same line, the output is as expected, when I start at next line, output is displayed twice.

Please see the file, code I tried and output below.

File contents:

cat d_exp
BEG
Id Job1
Id Stage1
1
EN
Id Job2
Id Stage2
BEG
Id2 Job3
Id Stage4
2
EN

Code:
awk '/BEG/,/EN/ {
print
}' d_*
-- Output as expected
BEG
  Id  Job1
  Id  Stage1
1
EN
BEG
  Id2 Job3
  Id  Stage4
2
EN

Braces in next line
 
awk '/BEG/,/EN/
{  #Next line
print
}' d_*

BEG
BEG
  Id  Job1
  Id  Job1
  Id  Stage1
  Id  Stage1
1
1
EN
EN
  Id  Job2
  Id  Stage2
BEG
BEG
  Id2 Job3
  Id2 Job3
  Id  Stage4
  Id  Stage4
2
2
EN
EN


Everyline is printed twice in the above output

Can someone please explain this? What am I missing here?

Previous Thread | Next Thread
Test Your Knowledge in Computers #936
Difficulty: Easy
The echo request ("ping") is an ICMP/ICMP6 message.
True or False?

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Strange behaviour of arrays in awk

Imagine 2 files f1 f2: file1_l1_c1 code_to_find file1_l1_c3 file1_l2_c1 file1_code2 file1_l2_c3 file1_l3_c1 file1_code3 file1_l3_c3 file2_l1_c1 file2_l1_c2 code_to_find file2_l2_c1 file2_l2_c2 file2_code5 file2_l3_c1 file2_l3_c2 file2_code3 Say we want to print lines from f2 having... (5 Replies)
Discussion started by: ripat
5 Replies

2. UNIX for Dummies Questions & Answers

Strange behaviour when output to terminal vs file (awk)

Hi all ! I noticed something very weird. I have a large pipe delimited file (20 fields/3,000 records) that looks like that: AAA|BBB|11111|22222|...|($NF of record 1) CCC|DDD|33333|44444|...|($NF of record 2) CCC|DDD|55555|66666|...|($NF of record 3) For the lines with same 1st and 2nd... (3 Replies)
Discussion started by: beca123456
3 Replies

3. Red Hat

Crontab strange behaviour

Hi all, I'm having this scenario which for the moment I cannot resolve. :( I wrote a script to make a dump/export of the oracle database. and then put this entry on crontab to be executed daily for example. The script is like below: cat /home/oracle/scripts/db_backup.sh #!/bin/ksh ... (3 Replies)
Discussion started by: enux
3 Replies

4. Shell Programming and Scripting

Strange RegExp Behaviour

Hello, I was trying to identify lines who has a word of the following pattern "xyyx" (where x, and ys are different characters). I was trying the following grep - egrep '(\S)()\2\1' This pattern do catches the wanted pattern, but it also catches "GGGG" or "CCCC" patterns. I was trying to... (5 Replies)
Discussion started by: itskov
5 Replies

5. HP-UX

Strange login behaviour

Hi all, I am using HP-UX and I have just noticed that when I log into the network it seems to save the previous windows that were subsequently closed on previous occasions. Does anyone know when I log in, it seems to display these previous windows, e.g. nedit windows open again? Does... (1 Reply)
Discussion started by: cyberfrog
1 Replies

6. Shell Programming and Scripting

Strange behaviour with perl i/o?

Hi All, I got a strange problem here. I have a perl script which is fetching data from a database table and writing a file with that data. If i run that script from linux command line, the file it creates is a normal ascii text file without any binary character in it.But... (9 Replies)
Discussion started by: DILEEP410
9 Replies

7. Shell Programming and Scripting

strange behaviour from sed???

Hi all, I want to do a very simple thing with sed. I want to print out the line number of a disk I have defined in /etc/exports, so I do: It's all good, but here's the problem. When I define md0 in a variable, I get nothing from sed: Why is that? can anybody please help? Thanks (2 Replies)
Discussion started by: alirezan
2 Replies

8. UNIX for Dummies Questions & Answers

Strange Program behaviour

Had a strange thing going on with my code. It's ok I figured it out for myself.... (2 Replies)
Discussion started by: mrpugster
2 Replies

9. Shell Programming and Scripting

A Strange Behaviour!!!

Can some-one give me a view to this : I have a directory in an unix server, having permissions r-xr-xr-x .This directory is basically a source directory. Now there is another directory basically the destination directory which has all the permissions. Note:I log in as not the owner,but user... (5 Replies)
Discussion started by: navojit dutta
5 Replies

Featured Tech Videos