web-dev-qa-db-ja.com

出力を特定の行の長さにフォーマットする

したがって、非常に長い行を含む出力があり、80列幅以下の行にフォーマット設定したいのですが、列の制限内にあるため、単語を分割したくありません。

私は試した

sed 's/.\{80\}/&\n/g' 

しかし、単語を分割し、一部の行をスペースで始めるという問題があります。

私はVimでそれを何とかして、textwidthを80に設定し、ファイルの先頭に移動してgqGを実行してテキストをフォーマットしました。しかし、むしろsedawk、またはスクリプトに含めるのに似た何かでそれを行います。

5
Msegade

代わりにfmtを使用してください:

fmt --width=80 file

man fmtから:

-w, --width=WIDTH
              maximum line width (default of 75 columns)
6
cuonglm

次のようにfoldを使用します。

fold -s -w80 file

これは空白(-s)でのみ分割され、80文字の線幅(-w80)を使用します。したがって、これはfmtソリューションとまったく同じですが、-sオプションを省略したときにany文字でブレークすることもできます。

7
tanius

以下の解決策が役立つかもしれません:

猫ファイル名.txt | fmt -w 80> reduce_file_name.txt

fmt-シンプルで最適なテキストフォーマッタ。

3
Anveshak