関連vCard回線に参加する方法、vCardは奇妙な行分割を実行します。1行に75文字を超える場合は、「CR、LF、スペース」シーケンスを挿入してください。したがって、次の行は次のようになります。
123456789A123456789B123456789C123456789D123456789E123456789F123456789G123456789H123456789I123456789J123456789K123456789L123456789M123456789N123456789O123456789P123456789Q123456789R123456789S123456789U123456789V123456789W123
次の行に分割する必要があります。
123456789A123456789B123456789C123456789D123456789E123456789F123456789G12345
6789H123456789I123456789J123456789K123456789L123456789M123456789N123456789
O123456789P123456789Q123456789R123456789S123456789U123456789V123456789W123
75文字ごとに行分割シーケンスを挿入することはできません。これは、各行が再び75文字より長くなるためです。そして75文字を数えた後は挿入できません。これは、行が次の場合にのみ発生するためです。もっと長く75文字以上。 1つの方法は、入力が変更されなくなるまで次のコマンドを繰り返すことです。
sed -e 's/^\(.\{75\}\)\([^\r]\)/\1\r\n \2/' < file | sed -e '...' | ...
これは明らかに長く不確実な行には機能せず、非常に非効率的です。この代替品をどのように作成しますか?
ベストアンサー1
スクリプトに2つのコマンドを追加するだけですP
。D
sed -e '{ s/\(.\{75\}\)\(.\)/\1\n \2/; P; D }' file