0

2 つのファイルがあるとします: - data.txt - report.txt

レポートには、いくつかの「プレースホルダー」を含むテキストが含まれています。例:

HPLC results for sample: <insert-sample-id-here>, elements analyzed: <insert-element-name>

データ ファイルには、一連の「キー/値」行が含まれています。

sampleID: 123456abc
elementName: genericThickeningAgent

ここではコンピューターの達人ではありませんが、「検索と置換」のタスクはコンピューターによって自動化できることは知っています。「プレースホルダーをデータファイルの一致するペアの値に置き換えた後に report.txt を書き換える」には、どのようなコマンドを使用する必要がありますか?

4

1 に答える 1

0

現在の形式のファイルでは、プレースホルダーがdata.txt<insert-sample-id-here>とは異なるため、データ ファイルの値をレポート ファイルのプレースホルダーに一致させることは困難です。と等しくない場合もsampleID同様です。<insert-element-name>elementName

data.txtただし、別の形式であると仮定します。

insert-sample-id-here: 123456abc
insert-element-name: genericThickeningAgent

(したがって、 のキーdata.txtが のプレースホルダーと一致する場合report.txt)、次のコマンドを使用できます。

$ perl -ne 'print "s/<$1>/$2/g\n" if /^(.*?):\s+(.*)$/' data.txt | \
    xargs -I% perl -p -i -w -e "%" report.txt

のすべてのプレースホルダーを置き換えますreport.txt:

$ cat report.txt
results for sample: 123456abc, elements analyzed: genericThickeningAgent
于 2013-03-20T07:27:23.400 に答える