0

假设我有两个文件:-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

(因此,如果 in 中的键与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 回答