The UNIX and Linux Forums  

Go Back   The UNIX and Linux Forums > Top Forums > Shell Programming and Scripting
.
google unix.com



Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here.

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
Row to Columns question bleach8578 Shell Programming and Scripting 6 04-01-2009 08:39 AM
How to remove columns with specific string? AMBER UNIX for Dummies Questions & Answers 2 03-31-2009 03:18 PM
Perl, printing a string into columns doubleminus UNIX for Dummies Questions & Answers 5 05-21-2008 10:41 PM
Append string to columns from 2 files karthikn7974 Shell Programming and Scripting 3 04-28-2008 10:32 AM
Need help in AWK;Search String and rearrange columns spring_buck Shell Programming and Scripting 2 04-05-2007 12:40 PM

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Search this Thread Rate Thread Display Modes
  #1 (permalink)  
Old 4 Weeks Ago
scottn scottn is offline Forum Advisor  
VIP Member
  
 

Join Date: Jun 2009
Location: Zürich, CH
Posts: 1,134
Quote:
How did you put these empty lines?
I took the lazy option of modifying the original script

Code:

 /.log/ && P { print "" }    # if the last line had ".log" in it (P > 0) print a blank line
 /.log/ { P=1 } # indicate we have a line with ".log" in it, the above line will evaluate to true if the next line has a ".log" in it


Code:

/^HF/ { printf $2 " "; getline; print $2; P=0 }

If a line starts with HF get the next line and print both together, reset P to say this line doesn't have ".log" in it. The HF= part is removed by using = as the field separator (-F=)

Or something like that!

I wouldn't really describe it as powerful.

---------- Post updated at 02:28 PM ---------- Previous update was at 01:47 PM ----------

Quote:
Originally Posted by liuzhencc View Post
Very strange thing took place! see the following lines

Code:
1c1
< awk -F= '/.log/ && P { print "" }/.log/ { P=1 }/^HF/ { printf $2 "           " ; getline; print $2; P=0 }' TE.txt >> test7
---
> awk -F= '/.log/ && P { print "" }/.log/ { P=1 }/^HF/ { printf $2 "           " ; getline; print $2; p=0 }' TE.txt >> test7

I thought they are exactly the same code. But the outputs are totally different. The first line gave the correct output but the second line didn't.
They're not the same. The second one has a lowercase p in the /^HF/ action. Variable names are case-sensitive in UNIX (almost universally so).

I should have used a less ambiguous variable name than P (which does look like p)!

(instead of editing your previous posts, it helps if you reply to the thread. that way I can see your updates more easily - I'm notified that way)
Reply

Bookmarks

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On




All times are GMT -4. The time now is 06:10 AM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios
The UNIX and Linux Forums Content Copyright ©1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant URLs by vBSEO 3.2.0