复制文本文件最后一行的第6个值,粘贴到另一个现有文件中

时间:2013-09-16 14:28:23

标签: replace sed awk text-processing

假设我有一个文件copy_pars.txt,我想在最后一行提取第6,第7和第8个值,看起来像这样:

detector xxx xxx xxx xxx XXX XXX XXX xxx xxx

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

我有第二个文件paste_pars.txt,其中我想要搜索以“detector”开头的 FIRST 行,并替换第6,第7和第8个具有来自copy_pars.txt的那些行的值。

我更喜欢使用sedawk,但欢迎提出建议。感谢。

2 个答案:

答案 0 :(得分: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

没有测试,但应该符合您的要求。

答案 1 :(得分: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