Sed 将一个文件中的单元格值替换为另一个文件中的另一个值

Sed 将一个文件中的单元格值替换为另一个文件中的另一个值,sed,awk,Sed,Awk,所以我有两个文件: 文件1: 校长1 校长2 123 0.0000 abc def ghi jkl mno pqr 234 0.0000 驾驶室fde室内运动场 ljk omn rpq 345 0.0000 bca efd hig klj名义qrp . . . 文件2: 一, 2. 3. . . 我想要的输出是: 校长1 校长2 1 0.0000 abc def ghi jkl mno pqr 2 0.0000 驾驶室fde室内运动场 ljk omn rpq 3 0.0000 bca ef

所以我有两个文件:

文件1:

校长1 校长2 123 0.0000 abc def ghi jkl mno pqr 234 0.0000 驾驶室fde室内运动场 ljk omn rpq 345 0.0000 bca efd hig klj名义qrp . . .

文件2:

一, 2. 3. . .

我想要的输出是:

校长1 校长2 1 0.0000 abc def ghi jkl mno pqr 2 0.0000 驾驶室fde室内运动场 ljk omn rpq 3 0.0000 bca efd hig klj名义qrp . . .

基本上,我想用file2中的值更改file1中/0.0000/模式前面的值。如果在Awk/Sed中有其他有效的方法,请务必告诉我


非常感谢。

这可能有用。当在file1的字段2中看到值0.0000时,使用将file2中的下一条记录读取到变量var中,并用var替换字段1


@user3006147,添加了一些解释它适用于示例,但当我将其应用于我的文件时,我没有正常工作。您能解释一下您的脚本的含义吗?我无法更好地理解它?提前谢谢。@user3006147,如果解决方案不起作用,请在问题中添加一些示例数据。因此,我将您的脚本修改为awk'/0.0000/{getline varawk '$2 == "0.0000"{getline var <"file2";$1=var};{print}' file1