csvファイルの区切り文字を妨げないセミコロン区切り文字が含まれています。

csvファイルの区切り文字を妨げないセミコロン区切り文字が含まれています。

"、"区切り文字を中断せずに列の区切り線を強調表示するために区切り文字を含める必要があるCSVファイルがあります。

以下は現在のファイルのモデルです。

99999999,2021-01-01,I,0090922002,000000000009102629-,000000000000000000-,000000000000000000-,
99999999,2021-01-01,I,0091000002,000000000063288833+,000000000000000000-,000000000000000000-,
99999999,2021-01-01,I,0091100005,000000000063288833-,000000000000000000-,000000000000000000-,
99999999,2021-01-01,I,0091110002,000000000063288833-,000000000000000000-,000000000000000000-,
99999999,2021-01-01,I,0099999995,000000008017897139+,000000000000000000-,000000000000000000-,

ファイルの区切り文字が「」なので、「.」を使用すると良いと思います。どのようにファイルをこのようにアーカイブできますか?

99999999,2021-01-01,I,0090922002,0000000000091026.29-,000000000000000000-,000000000000000000-,
99999999,2021-01-01,I,0091000002,0000000000632888.33+,000000000000000000-,000000000000000000-,
99999999,2021-01-01,I,0091100005,0000000000632888.33-,000000000000000000-,000000000000000000-,
99999999,2021-01-01,I,0091110002,0000000000632888.33-,000000000000000000-,000000000000000000-,
99999999,2021-01-01,I,0099999995,0000000080178971.39+,000000000000000000-,000000000000000000-,

ベストアンサー1

awkを強制的に実行しない場合は、以下を使用してください。ミラー、小数点区切り文字でカンマを使用する場合

mlr --csv -N put -S '$5=sub($5,"(...)$",",\1")' input.txt

あなたのため

99999999,2021-01-01,I,0090922002,"0000000000091026,29-",000000000000000000-,000000000000000000-,
99999999,2021-01-01,I,0091000002,"0000000000632888,33+",000000000000000000-,000000000000000000-,
99999999,2021-01-01,I,0091100005,"0000000000632888,33-",000000000000000000-,000000000000000000-,
99999999,2021-01-01,I,0091110002,"0000000000632888,33-",000000000000000000-,000000000000000000-,
99999999,2021-01-01,I,0099999995,"0000000080178971,39+",000000000000000000-,000000000000000000-,

小数点区切り記号で点が必要な場合

mlr --csv -N put -S '$5=sub($5,"(...)$",".\1")' input.txt
99999999,2021-01-01,I,0090922002,0000000000091026.29-,000000000000000000-,000000000000000000-,
99999999,2021-01-01,I,0091000002,0000000000632888.33+,000000000000000000-,000000000000000000-,
99999999,2021-01-01,I,0091100005,0000000000632888.33-,000000000000000000-,000000000000000000-,
99999999,2021-01-01,I,0091110002,0000000000632888.33-,000000000000000000-,000000000000000000-,
99999999,2021-01-01,I,0099999995,0000000080178971.39+,000000000000000000-,000000000000000000-,

おすすめ記事