大きなファイルがあり、.csv
特定の列を文字列の長さに分割する必要があります。 2列の最後の6文字を取得して新しい列に移動しようとします。
現在の:
3102017,90131112,0,740
3022017,8903944,90,0
3092017,127037191,475,0
予想される:
3102017,90,131112,0,740
3022017,8,903944,90,0
3092017,127,037191,475,0
ベストアンサー1
POSIX互換awk
:
awk -F, -v OFS=, '{sub(/.{6}$/, OFS "&", $2); print}'
POSIX互換sed
:
sed 's/^\([^,]*,[^,]*\)\([^,]\{6\}\)/\1,\2/'
2番目のフィールドの長さが6文字以上の場合にのみ行を変更します(2番目のフィールドを空白のままにする111,123456,333
ことに注意してください)。111,,123456,333