在一个文件中查找字符串,然后在另一个文件中使用它

用户名

在中,file 1我需要hdu在第2列(或第HX*5列)中找到包含字符串的行,然后file 2用中的第5列的值替换第2列中的值file 1

文件1:

64 ha 1 LIG H64 64 0.000000 12.0100 c 0.637086 12.0100
65 du 1 LIG XX65 65 0.000000 16.0000 o -0.547014 16.0000
66 du 1 LIG XX66 66 0.000000 16.0000 oh -0.611114 16.0000
67 hdu 1 LIG HX67 67 0.000000 1.0080 hc 0.090186 1.0080
68 hdu 1 LIG HX68 68 0.000000 1.0080 hc 0.090186 1.0080

文件2:

1LIG    H64   64    2.06144000    1.94117000    2.65125000
1LIG   XX65   65    2.14737000    1.92392000    2.73722000
1LIG   XX66   66    1.98154000    2.05095000    2.64407000
1LIG   XX67   67    2.21440000    1.72650000    2.55862000
1LIG   XX68   68    2.22046000    1.85502000    2.43909000

在给定的情况下,我需要更换XX67HX67,并XX68HX68,使输出为:

1LIG    H64   64    2.06144000    1.94117000    2.65125000
1LIG   XX65   65    2.14737000    1.92392000    2.73722000
1LIG   XX66   66    1.98154000    2.05095000    2.64407000
1LIG   HX67   67    2.21440000    1.72650000    2.55862000
1LIG   HX68   68    2.22046000    1.85502000    2.43909000

我最好的猜测是命令

awk 'FNR==NR && $2=="hdu" {x=$1;y=$5} NR!=FNR { if ($3==x) {$2=y} print}' file1 file2

但它仅替换了最后一次出现的情况。

鲁迪奇

那是因为您的xy值被覆盖,因此只有file1的最后一行会保留。使用数组尝试一下单线的这种小改编:

awk 'FNR==NR && $2=="hdu" {y[$1] = $5} NR!=FNR { if ($3 in y) {$2 = y[$3]} print} ' file1 file2

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在文件中所有行的开头查找字符串,然后保存到另一个文件

如何在文件中查找字符串然后将它们复制到另一个文件

在 C# 中使用另一个文件从一个文件中删除字符串?

从一个文件中查找另一个文件中的字符串(如果不存在),然后从原始文件中删除

在一个文件中找到完整的文本,然后在另一个文件中替换字符串

使用javascript在另一个字符串中查找字符串的位置

从另一个列表中的列表中查找字符串对象

如何在JSON文件中查找字符串,然后在列表中获取下一个?

VBA Excel:在另一个工作簿中查找字符串的功能

使用路径字符串从另一个文件中查找文件的相对路径

使用另一个文件中的模式替换文件中的字符串

从另一个列表中的字符串开始的列表中查找字符串

使用Java8使用endsWith方法在另一个ArrayList中的一个ArrayList中查找字符串值

如何在一个php文件中定义mysqli连接,然后在另一个文件中使用它?

如何保存字符串并在另一个类中使用它?

在具有多个节的文件的一个节中查找字符串

Powershell->在Excel中查找/替换->在一个单元格中查找字符串,然后在另一个单元格中更改字符串

匹配两个熊猫系列:如何从另一个系列的一个序列中查找字符串元素,然后创建一个新列

从另一个列表中的一个列表中查找字符串并找到返回的字符串

如何在不使用python中的find()方法的情况下在另一个字符串中查找字符串

复制文件中的字符串,然后使用sed覆盖另一个字符串

读取一个字符串并使用它来读取另一个文件的变量的值

查找字符串中所有索引,然后使用索引编辑Hangman Game中另一个字符串中那些位置的字母的最佳方法

覆盖函数中的PHP变量并在另一个文件中使用它

在一个jsp文件中创建Java函数,然后从另一个jsp文件中调用它

从列表中查找字符串并查看是否部分位于另一个列表中

然后从一个单元格中查找字符串中的文本,然后将值从对应的行复制到另一个单元格中

仅查找某些字符串(域)提取另一个文件

根据另一个文件中的字符串重命名文件夹中的文件 - 使用 Python