私は、次の形式の区切られたデータセットを取得するプロジェクトに取り組んでいます。
field1~field2~field3~.....~fieldn
空のフィールドを持つ可能性があるため、
field1~~~field4~~field6
完全に受け入れられます。
このファイルは、社内の翻訳プログラムを使用して翻訳されますが、少し足りないところがあります。具体的には、空のフィールドをうまく処理できません。私の解決策は、スペースや @ 記号などのダミーの値をそこに貼り付けることでした。私はもう試した:
sed -r 's/~/~ ~/g'
と
awk '{gsub(/\~\~/,"~ ~")}; 1' file > file.SPACE
しかし、これらは両方とも MULTIPLE フィールドを置き換えるには不十分です。だから私が入力した場合
field1~field2~~~field3
それは出力します:
field1~field2~ ~~field3
トランスレータのコードを変更することはできないので、できればこれをスクリプト化したいと思います。区切りファイルを作成するプログラムのコードを変更することはできますが、変更したくありません。回避策はありますか、それとも正規言語に固有の制限の 1 つにすぎない表現を考え出していますか?
編集:迅速な対応に感謝します。すべてのソリューションが機能したので、すべてに賛成票を投じました。説明があるので、ジャニートを受け入れると思います。
また、なぜ反対票を投じるのですか?