0

私は一つのことにつまずいています:

awk で一連のファイルをソートし、ソートされたパーティクルを txt として保存しています。しかし、今はそれらを .doc として、特に横向きの形式で保存する必要があります。私はたくさんグーグルで調べましたが、これを行う唯一の方法はファイルをドキュメントとして保存することですが、ファイルの作成中にこれらrtf codeをファイルに書き込んでから、実際のコンテンツをファイルに書き込んでいることがわかりました。

rtf 開始タグ コード:

{\rtf1\ansi\deff0 {\fonttbl {\f0 Courier;}}
{\colortbl;\red0\green0\blue0;\red255\green0\blue0;}
\landscape
\paperw15840\paperh12240\margl720\margr720\margt720\margb720

および rtf 終了タグ:

}

終了タグは、ファイルの最終行の後に、新しく作成されたファイルの最終行として書き込まれます。

私の問題は、に来る前に awk 内のファイルの最後の行をどのように見つけることができるかENDです。

これは私のコードです。http://pastebin.com/mfjH4NYY 何が起こっているかを知るのは巨大なコードですが、要点は次のとおりです。タグでfnnIDは使用できません。これにより、文字をEND追加して閉じると、新しいファイルが作成されます}RTF形式。誰かが手がかりを理解するのを手伝ってくれますか?

どうもありがとう

4

1 に答える 1

3

write_header(filepath)RTFヘッダーをファイルに書き込む関数があるとしましょう。この関数を、filepath渡されたすべてのグローバル変数に記録します。次に、ENDで、これらをループしfilepath、RTFフッターを書き込みます。

新しい「ls-l」の質問について:なぜそれを使用する必要があるのか​​わかりません。

これが私が提案したものです:

function write_header(filepath) {
  print "{\\rtf1\\ans .... " >> filepath
  tracked[max_header++] = filepath
}

BEGIN {
  # You don't have to write the headers in BEGIN. Just make sure it's the
  # first thing you write to the files.
  write_header("file1.doc")
  write_header("file2.doc")
  write_header("another_file.doc")
}

END {
  # Write the footers.
  for(i in tracked) {
    print "}" >> tracked[i]
  }
}
于 2012-08-27T09:48:21.030 に答える