0

假设我有一个文件copy_pars.txt,我想提取最后一行的第 6、第 7 和第 8 个值,如下所示:

detector xxx xxx xxx xxx XXX XXX XXX xxx xxx

其中XXX值是我要复制的值。除了第一个“ detector”之外,所有值都是未知的浮点数或整数,长度未知。它们由单个空格分隔。

我有第二个文件,paste_pars.txt我想在其中搜索以“”开头的第一detector行,并将该行的第 6、第 7 和第 8 个值替换为来自 copy_pars.txt.

我更喜欢使用sedor awk,但欢迎提出建议。谢谢。

4

2 回答 2

3

试试这一行:

awk 'NR==FNR{f6=$6;f7=$7;f8=$8;next}!f&&/^detector/{f=1;$6=f6;$7=f7;$8=f8}7' copy.txt paste.txt

没有测试,但应该可以满足您的要求。

于 2013-09-16T14:38:06.530 回答
0
awk 'NR==FNR{split($0,a);next} !f && /^detector/{for (i=6;i<=8;i++) $i=a[i]; f=1} 1' copy_pars.txt paste_pars.txt
于 2013-09-16T17:26:15.813 回答