数値に影響を与えずにファイルの文字列を区切り文字に置き換えるにはどうすればよいですか? [閉鎖]

数値に影響を与えずにファイルの文字列を区切り文字に置き換えるにはどうすればよいですか? [閉鎖]

入力ファイル:

123 exx abcdef 890 hello-hi-welcome and name in-India 1 3.45 1.3538 8.773
456 hfjgt 928 aetr-new-abc-India 1 9.7392 18.1903 8.752

出力:

123,exx abcdef,890,hello-hi-welcome and name in-India,1,3.45,1.3538,8.773
456,hfjgt,928,aetr-new-abc-India,1,9.7392,18.1903,8.752

そのためにシェルスクリプトをどのように書くのですか?

ベストアンサー1

数字の前後の空白を変更すれば十分だと思います。

$ sed -r 's/([[:digit:]]) /\1,/g; s/ ([[:digit:]])/,\1/g' file
123,exx abcdef,890,hello-hi-welcome and name in-India,1,3.45,1.3538,8.773
456,hfjgt,928,aetr-new-abc-India,1,9.7392,18.1903,8.752

おすすめ記事