折りたたみのUnicode安全代替

折りたたみのUnicode安全代替

私はfold -w 31行を3文字の長さの複数行に分割することに慣れていますが、GNU実装ではマルチバイト文字のテキストでは機能しないようです。

上記の目標をどのように達成できますかsed

私はそれを見つけましたが、sed -r 's/^(.{0,3})(.*)/\1\n\2/g'これは一度の交換のみを行います。

echo "111222333444555666" | sed -r 's/^(.{0,3})(.*)/\1\n\2/g' 
111
222333444555666

他の例:

echo "ĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄ" | sed -r 's/^(.{0,3})(.*)/\1\n\2/g' 
ĄĄĄ
ĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄ

腐敗したfold慣行:

echo "ĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄ" | fold -w 3                         
Ą�
�Ą
Ą�
�Ą
Ą�

ベストアンサー1

短いgrep方法:

echo "ĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄĄ" | grep -Eo '.{1,3}'
ĄĄĄ
ĄĄĄ
ĄĄĄ
ĄĄĄ
ĄĄĄ
ĄĄĄ
ĄĄĄ
ĄĄ

3つの文字シーケンスのみを保持します。... | grep -Eo '.{3}'

おすすめ記事