定期的にテンプレートを使用して100を超えるテキストファイルを作成する必要があります。
現在使用しているシェルスクリプトが複雑すぎます。この問題を処理するより賢い方法があると思いますが、方法がわかりません。
「データベース」があります。
# outputfile template data1 data2 data3
first.txt $template_main $text1 abcd 1234
second.txt $template_main $text2 efgh 5678
third.txt $template_other $text1 ij 90
および設定ファイル:
template_main=main.txt
template_other=other.txt
text1=whatever
text2=blah
テンプレートは、%%data2%%などのプレースホルダを持つテキストファイルです(プレースホルダの形式は変更される可能性があります)。
複雑なシェルスクリプトを使用するよりも自動化できるツールを知っている人はいますか?
ベストアンサー1
以下を考慮することもできます。
m4
目的のテキストを出力し、それを変更したい部分を含む入力テンプレートとして使用するテキストプロセッサであるGNUツール。確かにシェルスクリプトよりも簡単です。 (#defineマクロIIRCを使用したCプリプロセッサのように動作します。)xsltproc
変換を適用して出力を提供するGNUツールです。テンプレートは、xml
テキストを出力するためにxslt
実行したい変換形式です。xml
個人的に私はそれを好みますxslt
が、あなたの場合はフォームのフィールドには合いません %DATA1%
%DATA2%
。テンプレートを変更したくないので、xmlが必要です。
だからあなたは本当にそれを確認する必要がありますm4
。
- あるいは、プログラミング言語はストリーム変換に非常に熟練していると言われています
Haskell
。私がこのアイデアを考えたのは、Haskell愛好家がParsec
文字列ストリームを自然に解析できるこの素晴らしいパッケージについて話しているからです。 xsltよりはるかに優れています。すでにとても良いです。私はHaskellを学び、現在はHaskellにテキストを変換する方法がわからないので繰り返しています。。