awk print

FreeBSD questions mailing list FreeBSD at amadeus.demon.nl
Thu Feb 24 19:03:45 GMT 2005


On 24 feb 2005, at 12:39, Soheil Hassas Yeganeh wrote:

> You can set $[1..n] to "" and then print
> find ./ -name "stuff" | awk '{ $1=""; $2=""; print}
>
>
> On Wed, 23 Feb 2005 22:41:32 -0500, Mark Frank 
> <mark at mark-and-erika.com> wrote:
>> * On Wed, Feb 23, 2005 at 07:36:05PM -0700 David Bear wrote:
>>> On Wed, Feb 23, 2005 at 11:19:26PM +0100, Roland Smith wrote:
>>>> On Wed, Feb 23, 2005 at 02:40:10PM -0700, David Bear wrote:
>>>>> I'm using awk to parse a directory listing. I was hoping there is a
>>>>> way to tell awk to print from $2 - to the end of the columns
>>>>> available.
>>>>>
>>>>> find ./ -name '*stuff' | awk '{FS="/" print $3---'}
>>>>
>>>> Is this what you mean?:
>>>>
>>>> find ./ -name '*stuff'|sed 's|\.[^/]*/[^/]*/||g'
>>>
>>> thanks for the advice. No, this doesn't do what I want.
>>>
>>> If I have a directory path /stuff/stuff/more/stuff/more/and/more
>>> that is n-levels deep, I want to be able to cut off the first two
>>> levels and print the from 2 to the Nth level.
>>
>> So how about cut?
>>
>> find ./ -name '*stuff'| cut -d/ -f4-
>>
>> Mark

or if you insist on using awk:

find ./ -name '*stuff' |  awk '{for (i=3; i<=NF; i++) printf " %s", $i; 
printf "\n" }'

Arno



More information about the freebsd-questions mailing list