她是输出的一个例子。我需要删除每四行末尾的逗号。
"tester1",
"SERVICE_TICKET_CREATED",
"Thu Mar 19 23:27:57 UTC 2015",
"111.111.11.1"
"tester1",
"SERVICE_TICKET_CREATED",
"Fri Mar 20 00:31:59 UTC 2015",
"111.111.11.1"
我想做的是
"tester1",
"SERVICE_TICKET_CREATED",
"Thu Mar 19 23:27:57 UTC 2015",
"111.111.11.1"
"tester1",
"SERVICE_TICKET_CREATED",
"Fri Mar 20 00:31:59 UTC 2015",
"111.111.11.1"
答案 0 :(得分:2)
使用GNU sed:
sed '4~4 s/,$//' filename
但是,我必须指出,在您的示例输出中,每四行末尾都没有逗号。
这应该对你有用,因为问题标记为“linux”,Linux几乎总是带有GNU sed。为了完整起见:使用BSD sed(在Mac OS X和* BSD上找到),4~4
模式不起作用(它是GNU扩展)。在那里你可以做类似
sed 'n;n;n;s/,$//' filename
...每次取出并打印三行,并在第四行结束时删除逗号(除非在获取第四行之前到达输入的结尾)。
或者,使用awk可以使用
awk 'NR % 4 == 0 { sub(/,$/, "") } 1' filename