sed在开头括号,在第4行关闭

时间:2015-03-20 18:37:50

标签: linux unix sed

我试图在第一行放置一个左括号并将其关闭为第四行的结尾。下面是我正在寻找的输出数据的示例。

tester1
SERVICE_TICKET_CREATED
Thu Mar 19 23:27:57 UTC 2015
192.168.1.3
tester2
SERVICE_TICKET_CREATED
Fri Mar 20 00:31:59 UTC 2015
192.168.1.2
(tester1
SERVICE_TICKET_CREATED
Thu Mar 19 23:27:57 UTC 2015
192.168.1.3)
(tester2
SERVICE_TICKET_CREATED
Fri Mar 20 00:31:59 UTC 2015
192.168.1.2)

2 个答案:

答案 0 :(得分:1)

使用awk,您可以将其作为

awk 'NR%4==1{print "("$0; next} NR%4==0{print $0")"; next}1'

<强>测试

$ awk 'NR%4==1{print "("$0; next} NR%4==0{print $0")"; next}1' input
(tester1
SERVICE_TICKET_CREATED
Thu Mar 19 23:27:57 UTC 2015
192.168.1.3)
(tester2
SERVICE_TICKET_CREATED
Fri Mar 20 00:31:59 UTC 2015
192.168.1.2)

更短的版本

awk 'NR%4==1{$0="("$0} NR%4==0{$0=$0")"}1'

答案 1 :(得分:1)

sed -r 's/^/(/;N;N;N;s/$/)/' input

N将下一行读入缓冲区。 s/^/(/在开头放置一个开头,s/$/)/在缓冲区的末尾放置一个结束点。