[Discuss] simple (?) awk logic/syntax problem

pw p.willis at telus.net
Wed Aug 9 19:34:54 PDT 2006


This will do what you want as well:

sed -e "s/\/dev\/sdc\ //g"


Although I'm sure *python* could do it
in a code line one character long...  ;)

Peter


Richard Body wrote:
> Hi Larry, 
> 
> 	I think you can use the matching operator "~" to get what
> you want. This gawk program works correctly on the sample input you
> gave.
> 
> Cheers ~ richard
> 
> {
>   for (i = 1; i < NF; i++){
>           PD=$i
> 	  ND=$(i+1)
>           if( ND ~ PD ) continue
> 	  printf("%s ", PD)
>   } 
>   print $NF
> }
> 
> On Wed, 2006-08-09 at 17:13 -0700, Larry Gagnon wrote:
> 
>>I have a simple string (one liner) with device names as such:
>>
>>/dev/sda /dev/sda1 /dev/sdb /dev/sdc /dev/sdc1
>>
>>I want to use awk to read that line and compare each following field to
>>the previous field such that if they are the same device but the
>>following field contains a partition then drop the previous field
>>from the output. For example the above line would become:
>>
>>/dev/sda1 /dev/sdb /dev/sdc1
>>
>>My attempt at awk is:
>>
>>#!/bin/gawk -f
>>{
>>for (i=1; i<=NF; i++) 
>>    PD = $i
>>    ND = $(i+1) 
>>    if (substr(PD,1,8) == substr(ND,1,8)) 
>>                print ND 
>>}
>>
>>This does not work. Any ideas appreciated.
>>
>>Larry
>>_______________________________________________
>>Discuss mailing list
>>Discuss at vlug.org
>>http://ladybug.vlug.org/cgi-bin/mailman/listinfo/discuss
> 
> 
> _______________________________________________
> Discuss mailing list
> Discuss at vlug.org
> http://ladybug.vlug.org/cgi-bin/mailman/listinfo/discuss
> 



More information about the Discuss mailing list