【发布时间】:2017-01-27 02:45:57
【问题描述】:
正在寻找一种解析多行命令输出的方法;将nth 行的每个倍数分组并以 CSV 格式格式化。
$ cat file
ABC
123
62p4-123
DEF
456
62p4-456
我需要将 o/p 分组在每个 3rd 行,并以 3 的倍数分组,即第 3、第 6 和第 9 次,然后分别以逗号分隔格式分别为第 1、第 4 和第 7 次和第 2、第 5 和第 8 次
ABC,DEF
123,456
62p4-123,62p4-456
这只是一个示例格式,我的实际用例是json o/p,我想使用bash 中的工具/实用程序对其进行格式化,并且我不需要在jq 中使用格式化选项用于解析数据。
我在awk 中找到了几种方法,例如awk 'NR % 3 == 0',但我无法在其他行中重复此操作。
编辑:- 正在更新我从jq 返回的实际 JSON o/p 以获得最有效的解决方案
4496
http://xxx/yyy
/home/build/branches/mmm/file1
4497
http://xxx/yyy/zzz
/home/build/branches/mmm/file1
4498
http://xxx/yyy/zzz
/home/build/branches/mmm/otherfile.c
预期的 o/p
4496,4497,4498
http://xxx/yyy,http://xxx/yyy/zzz,http://xxx/yyy/zzz
/home/build/branches/mmm/file1,/home/build/branches/mmm/file1,home/build/branches/mmm/otherfile.c
【问题讨论】:
-
更多行你期望什么输出? (请显示一个 9 或 12 行的输入)。
-
@gniourf_gniourf:更新!
-
我明白了。不过,我不确定这是否可以容忍,因为我们显然有重复!
:). -
好吧,如果我将答案粘贴为评论,然后删除这篇文章,这有意义吗?
-
好吧,现在情况很奇怪:您的问题很好(提出得当等),而另一个问题则没有那么好(但是,可以通过温和的编辑来挽救)。我不知道该怎么办……等着看
:D。