0

我应该如何在 csv 行的某个点插入一个字符?例如,如果我有以下情况:

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

我怎么能,,,,,在 5(第五场)所在的地方插入,所以它看起来像

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

我找到了如何为 java 执行此操作的链接,但不幸的是,我没有太多运气找到如何使用 bash 执行此操作。任何帮助将不胜感激,谢谢!

4

2 回答 2

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
于 2012-12-07T08:17:27.920 回答
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
> 
于 2012-12-07T08:51:15.907 回答