Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 通过匹配从另一个文件获得的模式替换文件中的字符串_Linux_Bash_Shell_Awk - Fatal编程技术网

Linux 通过匹配从另一个文件获得的模式替换文件中的字符串

Linux 通过匹配从另一个文件获得的模式替换文件中的字符串,linux,bash,shell,awk,Linux,Bash,Shell,Awk,我有两个文件 文件1: $node_(17) set X_ -0.31 $node_(16) set Y_ 1274.64 ns_ at 1.0 "$node_(17) setdest -0.31 1274.64 0.00" ns_ at 2.1 "$node_(16) setdest 2041.48 295.29 2.52" (17) (0) (16) (1) $node_(0) set X_ -0.31 $node_(1) set Y_ 1274.64 ns_ at 1.0 "$node

我有两个文件

文件1:

$node_(17) set X_ -0.31
$node_(16) set Y_ 1274.64
ns_ at 1.0 "$node_(17) setdest -0.31 1274.64 0.00"
ns_ at 2.1 "$node_(16) setdest 2041.48 295.29 2.52"
(17) (0)
(16) (1)
$node_(0) set X_ -0.31
$node_(1) set Y_ 1274.64
ns_ at 1.0 "$node_(0) setdest -0.31 1274.64 0.00"
ns_ at 2.1 "$node_(1) setdest 2041.48 295.29 2.52"
文件2:

$node_(17) set X_ -0.31
$node_(16) set Y_ 1274.64
ns_ at 1.0 "$node_(17) setdest -0.31 1274.64 0.00"
ns_ at 2.1 "$node_(16) setdest 2041.48 295.29 2.52"
(17) (0)
(16) (1)
$node_(0) set X_ -0.31
$node_(1) set Y_ 1274.64
ns_ at 1.0 "$node_(0) setdest -0.31 1274.64 0.00"
ns_ at 2.1 "$node_(1) setdest 2041.48 295.29 2.52"
我想在File1中找到(File2的)第一列值,并用相应的第二列值替换它们。例如,文件1中的(17)应替换为(0),(16)应替换为(1)

输出文件1:

$node_(17) set X_ -0.31
$node_(16) set Y_ 1274.64
ns_ at 1.0 "$node_(17) setdest -0.31 1274.64 0.00"
ns_ at 2.1 "$node_(16) setdest 2041.48 295.29 2.52"
(17) (0)
(16) (1)
$node_(0) set X_ -0.31
$node_(1) set Y_ 1274.64
ns_ at 1.0 "$node_(0) setdest -0.31 1274.64 0.00"
ns_ at 2.1 "$node_(1) setdest 2041.48 295.29 2.52"
我该怎么做?感谢使用GNU:

sed -f <(sed 's/\((.*)\) \((.*)\)/s|\1|\2|/' file2) file1

sed-f非常感谢,它非常适合小文件。对于大文件,它会变得太慢。可以使用Perl吗?我想在Perl中也可以。请开始一个新问题。