gpt4 book ai didi

linux - 将每 x(dynamic) 行移动到一行 [Shell]

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:22:32 27 4
gpt4 key购买 nike

所以我有这样的数据

/blah
etc1: etc
etc2
etc3: etc
etc4
/blah
etc1: etc
etc2
etc3
/blah
etc1: etc
etc2
etc3: etc
etc4
/blah
etc1
etc2

所以我不能做特定数量的行,所以我想使用/作为分隔符并将每一行放在 until/之后在同一行(逗号分隔?)理想的预期输出:

/blah,etc1: etc,etc2,etc3: etc,etc4,,
/blah,etc1,etc2,etc3,,
/blah,etc1: etc,etc2,etc3: etc,etc4,,
/blah,etc1,etc2,,

首选 shell/bash/ksh,但 excel 解决方案也可以。

最佳答案

这是一个 awk 解决方案:

awk ' 
/^\// { if (NR > 1) print ","; printf "%s,", $0; next }
{ gsub(/^ +| +$/, ""); printf "%s,", $0 }
END { print "," }
' file

请注意,它假定输入文件以类似于 /blah 的行开头,但不以一行结尾。

塞进一行(可读性较差):

awk '/^\// {if(NR>1) print","; printf"%s,",$0; next} {gsub(/^ +| +$/, ""); printf"%s,",$0} END {print","}' file

关于linux - 将每 x(dynamic) 行移动到一行 [Shell],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40917655/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com