• ベストアンサー

データ代入方法について

以下のデータ内容の","と","の間にデータがない時は、"-"を代入する方法を教えてください。 (できれば、Solarisの標準コマンドで。) <data> user1,user1@mail.co.jp,taro,123-456,太郎, user2,,hanako,,花子, user3,,,一郎, <data変換後> user1,user1@mail.co.jp,taro,123-456,太郎, user2,-,hanako,-,花子, user3,-,-,-,一郎,

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4901/10362)
回答No.3

sedの条件付gotoを使って sed ':X;s/,,/,-,/g;t X' indata >outdata tを使うと置換が実行されたときだけ goto X されます。 もしかしたら、; が使えずにコマンドを別々に、 sed -e :X -e s/,,/,-,/g -e 't X' indata >outdata と書かないといけないかもしれません。

その他の回答 (2)

  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.2

ファイル名が mydata だとして cat mydata | sed -e "s/,,,/,-,-,/g" | sed -e "s/,,/,-,/g">newdata いきなりmydataにリダイレクトしてもOKだけど、一応確認してね。 ",,"の重複数が不定の場合は、シェルでループするとか工夫が必要。 (ワンライナーでも行けると思うけど思い浮かばなかった。どなたかお願いします)

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

言語は何でしょう?

関連するQ&A