我应该如何在csv行的某个点插入字符?例如,如果我有以下内容:
1,2,3,4,5,6,7
我怎么能在 5(第五个字段)所在的位置插入,,,,,
,所以它看起来像
1,2,3,4,,,,,,5,6,7
我找到了一个如何为 java 执行此操作的链接,但不幸的是,我没有太多运气找到如何使用 bash 做到这一点。任何帮助将不胜感激,谢谢!
您可以使用
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
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
>