AWK:行を72文字に改行

AWK:行を72文字に改行
$ awk 'length > 72' {HOW TO PRINT THE LINEs IN PCS?} msg

つまり、72文字以降に追加して続行したいので、最初はすべてのシングルを削除して追加する必要が\nあるかもしれません。\n他のツールを使用する方が簡単かもしれませんが、awkを試してみましょう。

【書き直す】

Williamsonは正しい答えを提供しますが、それを読むのに助けが必要です。以下の簡単な例を使用して、質問をいくつかの部分に分けました。

  1. 以下のコードが\t両方の場合、印刷されるのはなぜですか?gsub何を置き換えるのですか? xは最後に奇数0のダミーファイルです。

  2. 攻撃ラインline = $0 \n more = getline \n gsub("\t"," ")内部ウィリアムソンの答えline明らかにstdout全体を取得し、moreポップアップ値も取得します$0。そうですか?

パート1のコード

$ gawk '{ hallo="tjena\t tjena2"; gsub("\t"," "); }; END {print hallo; gsub("\t", ""); hallo=hallo gsub("\t",""); print hallo }' x
tjena  tjena2
tjena  tjena20

ベストアンサー1

awkを使わずに

私はこれがおそらくawkで解決しようとするより大きな問題の一部であることを知っているか、awkawkをよりよく理解しようとしていますが、実際に行の長さを72列に維持したい場合は、次の方法があります。たくさんより良いツール。

このfmtツールは、次の点を念頭に置いて特別に設計されています。

fmt --width=72 filename

fmtまた、出力を読みやすくするために、適切な行を改行しようとします。 「合理的な場所」とは何かについては、infoこのページを参照してください。fmt

おすすめ記事