0

csv行の特定のポイントに文字を挿入するにはどうすればよいですか?たとえば、私が次のようなものを持っていた場合:

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

,,,,,5(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 に答える