2012-12-07 32 views
0

我该如何在csv行的特定位置插入字符?举例来说,如果我有以下几点:如何在csv行的特定位置插入字符

1,2,3,4,5,6,7

我怎么能在那个地方的5(第五个字段)被插入,,,,,,所以它看起来像

1,2,3,4,,,,,,5,6,7

我找到了一个关于如何为java做这件事的链接,但不幸的是我没有多少运气找出如何用bash做到这一点。任何帮助将不胜感激,谢谢!

回答

1

您可以使用awk更改特定领域:

awk -F"," '{OFS=","; a=$5; $5=",,,,,",a; print $0}' file 

的想法与期望的值来更新字段5,然后打印整条生产线。


echo "1,2,3,4,5,6,7" | awk -F"," '{a=$5; $5=",,,,,"a; OFS=","; print}' 

将打印:

1,2,3,4,,,,,,5,6,7 
+0

完美地工作,谢谢! – lacrosse1991

1
awk -F, 'BEGIN{OFS=","}{$5=",,,,,"$5;print}' your_file 

如下测试:

> echo "1,2,3,4,5,6" | awk -F, 'BEGIN{OFS=","}{$5=",,,,,"$5;print}' 
1,2,3,4,,,,,,5,6 
> 

,或者你可以用perl做到这一点:

> echo "1,2,3,4,5,6" | perl -F, -lane '$F[4]=~s/^/,,,,,/g;print join(",",@F)' 
1,2,3,4,,,,,,5,6 
> 
相关问题