改行を強制するために、BBEditからsedに正規表現を変換する際に問題が発生しました。

改行を強制するために、BBEditからsedに正規表現を変換する際に問題が発生しました。

私は、ファイルのスペースを余白/文字制約内でハードラップするように強制する簡単な方法を研究しています。つまり、どの行も n 文字より長くすることはできず、改行は単語の間にあります。私はBBEditで働いています:

Find: (.{1,26})(\h+\R?|\R)
Replace: \1\n

ただし、sed(MacOS 12 zsh)では機能しません。

私が得た最も近いものは次のとおりです。

sed -i .bak -E 's#(.{1,26})(\h+\R?|\R)#\1\n#g' file.txt

ただし、単語の途中で行をラップして一部の行を完全に見逃すので、制限(この場合は26行)をはるかに超えてしまいます。 sedコマンドで\s \tと\nを試しましたが、何も機能しません。私が見逃した他の構文、またはより適切な他のコマンドがありますか?ありがとうございます。

ベストアンサー1

どうですか?

sed -r 's/(.{1,26}) /\1\n/g' file.txt

何を意味するのか理解できないことを認めなければなりません(\h+\R?|\R)。何か複雑なことが起こっているのかもしれません。

おすすめ記事