假设我有一个文件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
的那些行的值。
我更喜欢使用sed
或awk
,但欢迎提出建议。感谢。
答案 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