作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在寻找用 sed、awk 或 cut 来做到这一点。我愿意使用可以通过管道传输数据的任何其他命令行程序。
我有大量以逗号分隔的数据。行有 14 到 20 列。我需要递归地将第 10 列与每行第 11 列连接起来,这样每一行正好有 14 列。换句话说,这:
a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p
a,b,c,d,e,f,g,h,i,jkl,m,n,o,p
sed 's/[^,]//g' | wc -c
cut -d, -f1-10
rev | cut -d, -f1-4 | rev
awk -F',' ' NF { print $1","$2","$3","$4","$5","$6","$7","$8","$9","$10$11}'
最佳答案
Awk
解决方案:
awk 'BEGIN{ FS=OFS="," }
{
diff = NF - 14;
for (i=1; i <= NF; i++)
printf "%s%s", $i, (diff > 1 && i >= 10 && i < (10+diff)?
"": (i == NF? ORS : ","))
}' file
a,b,c,d,e,f,g,h,i,jkl,m,n,o,p
关于awk - linux csv文件将列连接成一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49135518/
我是一名优秀的程序员,十分优秀!