sed 在每 4 行的末尾添加逗号

sed add comma at end of every 4th line

我需要在每四行的末尾添加一个逗号。这是输出示例,后面是我正在寻找的内容。

("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"),

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

sed 's/)$/),/'

这将容纳行数不同的记录。

使用 awk

awk 非常适合这个:

$ awk '0==NR%4{[=10=]=[=10=]","} 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{[=12=]=[=12=]","}

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

  • 1

    这是 awk 的神秘 shorthand 打印行。

使用 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 命令将任何结尾的“)”替换为“)”:

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