我想用另一个文本文件中的相应行替换文本文件中的一行。
File1的内容:
>line1
GGG
>line2
AAA
>line3
TTT
>line4
CCC
>line5
CAT
File2的内容:
>name.A
CTGG
>name.B
GACC
>name.C
CTGG
>name.D
GGAA
>name.E
GCTA
两个文件中的行数相同。最终文件应如下所示:
>name.A
GGG
>name.B
AAA
>name.C
TTT
>name.D
CCC
>name.E
CAT
我在寻找解决方案,但似乎找不到。我确实尝试了以下方法:
awk 'FNR==NR {data[FNR]=$0; next} (FNR%2==1){$0=data[FNR]}1' < File1 < File2
但什么也没发生。
任何帮助将非常感激!
$ awk 'NR==FNR{a[NR]=$0; next} {print (FNR%2 ? $0 : a[FNR])}' file1 file2
>name.A
GGG
>name.B
AAA
>name.C
TTT
>name.D
CCC
>name.E
CAT
除了更简洁(并且可以使用:-)),上述方法比您使用的方法更有效,因为:
1
在决定是否打印之前,它并没有为每一行测试第二个条件()。另外-不要使用输入重定向打开awk的文件,因为它不适用于多个文件(如您所知),并且使您无法检查FILENAME。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句