sed每4行结尾加逗号

我需要在每四行的末尾添加一个逗号。 这里是我正在寻找的输出的一个例子。

("tester1", "SERVICE_TICKET_CREATED", "Thu Mar 19 23:27:57 UTC 2015", "73.217.129.159") ("tester1", "SERVICE_TICKET_CREATED", "Fri Mar 20 00:31:59 UTC 2015", "73.217.129.159") 

而我需要的

 ("tester1", "SERVICE_TICKET_CREATED", "Thu Mar 19 23:27:57 UTC 2015", "73.217.129.159"), ("tester1", "SERVICE_TICKET_CREATED", "Fri Mar 20 00:31:59 UTC 2015", "73.217.129.159"), 

使用awk

awk非常适合这个:

 $ awk '0==NR%4{$0=$0","} 1' file ("tester1", "SERVICE_TICKET_CREATED", "Thu Mar 19 23:27:57 UTC 2015", "73.217.129.159"), ("tester1", "SERVICE_TICKET_CREATED", "Fri Mar 20 00:31:59 UTC 2015", "73.217.129.159"), 

怎么运行的:

  • 0==NR%4{$0=$0","}

    NR是行号。 NR%4是行数模4。因此,每0 == NR%4 。 对于这些行,我们在末尾添加一个逗号: $0=$0","

  • 1

    这是awk对印刷线的神秘速记。

使用sed

看起来你想在每一行结尾都有一个逗号之后加一个逗号。 如果是这样的话,那么:

 $ sed 's/)$/),/' file ("tester1", "SERVICE_TICKET_CREATED", "Thu Mar 19 23:27:57 UTC 2015", "73.217.129.159"), ("tester1", "SERVICE_TICKET_CREATED", "Fri Mar 20 00:31:59 UTC 2015", "73.217.129.159"), 

如果您的目标是在每次关闭后添加逗号),那么您可以执行以下操作:

 sed 's/)$/),/' 

这将适应行数不同的记录。

你可以用“)”来代替任何结尾的“)”,通过使用这个sed命令:

 sed 's/)$/),/' <your file>