是否可以在 MacOS 中将一行字符串文本分隔为多行
Is it possible to separate one line string text into multi-line in MacOS
我是命令新手,我有以下一行字符串片段
是否可以像下面这样显示语法输出
我尝试使用 cut -d',' -f 6,12,......
,但是如果我有 100000 个或更多片段,我该如何解决这个问题?
您可以尝试使用 awk
。以下将把输入分成 6 个以逗号分隔的列的块:
awk -F, '{for(i=1; i<NF; i+=6){for(j=0; j<5; j++) { printf "%s,", $(i+j) } print $(i+5) } }'
说明
-F,
使用逗号作为输入字段(即列)分隔符
for(i=1; i<NF; i+=6) {
步过列,一次 6 步
for(j=0; j<5; j++) {
遍历 6 集合中的前 5 列
printf "%s,", $(i+j)
打印第 i+j 列后跟一个逗号(没有换行符)
print $(i+5)
打印最后(第 6 列)后跟换行符
我是命令新手,我有以下一行字符串片段
是否可以像下面这样显示语法输出
我尝试使用 cut -d',' -f 6,12,......
,但是如果我有 100000 个或更多片段,我该如何解决这个问题?
您可以尝试使用 awk
。以下将把输入分成 6 个以逗号分隔的列的块:
awk -F, '{for(i=1; i<NF; i+=6){for(j=0; j<5; j++) { printf "%s,", $(i+j) } print $(i+5) } }'
说明
-F,
使用逗号作为输入字段(即列)分隔符for(i=1; i<NF; i+=6) {
步过列,一次 6 步for(j=0; j<5; j++) {
遍历 6 集合中的前 5 列
printf "%s,", $(i+j)
打印第 i+j 列后跟一个逗号(没有换行符)print $(i+5)
打印最后(第 6 列)后跟换行符