901
キーが、、902
対応する値が、、WAP903
であり、スペースを区切り文字として使用する「キー:値」形式のデータがあります。904
S
M
F,
- 入力例
901 S 902 M 903 F 904 WAP .....
形式に変換したいですkey:value,key:value
。
- 希望の出力:
901:S,902:M,903:F,904:WAP .....
試してみましたが、sed
単一の区切り文字のみを追加できます。
答え1
$ sed -E 's/\s*([0-9]+)\s+([A-Z]+)/\1:\2,/g;s/,$//' <<< '901 S 902 M 903 F 904 WAP'
-------8<------------------
901:S,902:M,903:F,904:WAP
答え2
すべての奇数のスペースはコロンで、すべての偶数のスペースはコンマで置き換えることができます。
sed -E 's/ ([^ ]) /:\1,/g; s/ /:/'
2番目の置換は最後の残りのスペースをコロンで置き換えます。一緒に使用するカンマがないため、最初の置換で置き換えられません。