sed
は次のようにすることができます:
12345
になる:
1&2&3&4&5
?
Unixユーティリティ:
fold -w1|paste -sd\& -
説明:
"fold -w1"
-各入力文字を独自の行にラップします
fold-指定された幅に収まるように各入力行を折り返します
-w、-width = WIDTHは、80ではなくWIDTH列を使用します
%echo 12345|fold -w1
1
2
3
4
5
"paste -sd\& -"
-&
をセパレータとして使用して、入力行をマージします
貼り付け-ファイルの行をマージ
-s、--serial並列ではなく一度に1つのファイルを貼り付け
-d、--delimiters = LIST TABの代わりにLISTの文字を再利用します
%fold -w1|paste -sd\& -
1&2&3&4&5
(入力に複数の行が含まれている場合、それらは&
で結合されます)
sed
を使用
sed 's/./&\&/g;s/.$//'
sed 's/\B/\&/g'
\ B-Word境界以外のすべての場所に一致します。つまり、左側の文字と右側の文字が両方とも「Word」文字または両方とも「非Word」文字である場合に一致します。
テスト:
sed 's/\B/\&/g' <<< '12345'
1&2&3&4&5
これは他のいくつかの回答よりも少し遅くなりますが、かなり明確です:
echo 12345 | Perl -lnE 'say join "&", split //'