[OT] can sed handle this situation? (might require variable)
Garrett Cooper
youshi10 at u.washington.edu
Sun Apr 15 02:54:04 UTC 2007
Zhang Weiwu wrote:
> Dear list. I could not find a mailing list about 'sed' (there is an very
> inactive Yahoo Group though) so I wish to try some luck here. Sorry for
> OT.
>
> I've got a situation that looks like require using variable and not
> possible to process with sed. But I am not sure. Can someone suggest me
> if this task is out of scope of sed?
>
> The input document is sections of data separated by an empty new line;
> in each section there are a few lines. It's like this:
>
> dn: uid=ABB,ou=contacts,ou=china,dc=ahk,dc=de
> uid: ABB
> ahkCreateTimeStamp: 19960328000000Z
> creatorsName: cn=manager,dc=ahk,dc=de
> createTimestamp: 20060425094550Z
>
> dn: uid=paulblome,ou=contacts,ou=china,dc=ahk,dc=de
> uid: paulblome
> sn: Blome
> createTimestamp: 20060417071950Z
> modifiersName: cn=manager,dc=ahk,dc=de
> modifyTimestamp: 20060630094026Z
>
> The above sample showed two sections in input data. It's required to
> process the data in following rule:
>
> if a data section has "ahkCreateTimeStamp: abc", replace it with
> "createTimestamp: abc" and remove the original "createTimestamp:
> def" line;
>
> That is, the result data of above sample should be:
>
> dn: uid=ABB,ou=contacts,ou=china,dc=ahk,dc=de
> uid: ABB
> createTimestamp: 19960328000000Z
> creatorsName: cn=manager,dc=ahk,dc=de
>
> dn: uid=paulblome,ou=contacts,ou=china,dc=ahk,dc=de
> uid: paulblome
> sn: Blome
> createTimestamp: 20060417071950Z
> modifiersName: cn=manager,dc=ahk,dc=de
> modifyTimestamp: 20060630094026Z
>
Sure, and no this doesn't require an additional variable.
If my sed'ing is correct (I usually do regular expressions with Perl),
the expression should be:
sed -e 'm/^\s+.+createTimeStamp:.+\s+createTimeStamp: (.+)/\s{number of
preceding required spaces}createTimeStamp: \1/g';
I'd be sure to test out the expression though first before replacing any
files.
My reference for the text replace was:
http://www.student.northpark.edu/pemente/sed/sed1line.txt (look for the
comma in number replace reference).
Cheers,
-Garrett
More information about the freebsd-questions
mailing list