Sed pattern help - not FreeBSD related

Tim Daneliuk tundra at tundraware.com
Tue Aug 25 23:47:59 UTC 2020


On 8/25/20 6:25 PM, Dr. Nikolaus Klepp wrote:
> Anno domini 2020 Tue, 25 Aug 18:05:45 -0500
>  Tim Daneliuk scripsit:
>> On 8/25/20 5:44 PM, Tim Daneliuk wrote:
>>> On 8/25/20 4:02 PM, Christoph Kukulies wrote:
>>>> Excuses, the result should look like: (forgot the DC)
>>>>
>>>>> LOOP:   DC LOOP+2
>>>>> DO:	      DC DO+2
>>>>> J:	     DC J+2
>>>>> ENCL:	DC ENCL+2  PDP-11 VERSION OF ENCLOSE
>>>>> KEY	     DC KEY+2
>>>>> EMIT	DC EMIT+2
>>>>> QTERM	DC QTERM+2
>>>
>>> Here is a  one-liner using sed and awk.  It suffers from two deficiencies:
>>>
>>> - It does not handle arbitrarily long comments
>>> - It's really ugly
>>>
>>>    sed s/':'//g < myfile | awk '{print $1":", $2, $1"+2", $4, $5, $6, $7, $8, $9. $10}'
>>>
>>
>>
>> Oops, not quite right because it inserts colons blindly in the first field -
>> which appears not what you want.  More correct implementation in Python:
>>
>> !/usr/bin/env python
>>
>> import sys
>>
>> for line in sys.stdin.readlines():
>>
>>     line = line.strip().split()
>>     label = line[0]
>>     comment = " ".join(line[3:])
>>     print("%s    DC   %s+2    %s" %(label, label.replace(':', ''), comment))
>>
>>
>>
> 
> 
> sed 's#^\([^ \t]*\)\([^*]*\)[*]#\1\2\1#' <el2
> 
> 
> nik
> 
> 
> 


Note quite right either... it preserves the trailing ':' if present in the 1st field in the '+2' field...



-- 
----------------------------------------------------------------------------
Tim Daneliuk     tundra at tundraware.com
PGP Key:         http://www.tundraware.com/PGP/



More information about the freebsd-questions mailing list