gpt4 book ai didi

awk - 仅比较特定行上的 2 个文件

转载 作者:行者123 更新时间:2023-12-01 23:03:36 25 4
gpt4 key购买 nike

我需要比较 2 个文件并找到匹配的行。唯一的问题是我需要从 DocumentList 文件中检查 5 行中的第 4 行,如果在最终文件中找到匹配项则返回整行。

cat DocumentList.xml
<?xml version="1.0" encoding="UTF-8" ?> <block-list:block-list xmlns:block-list="http://openoffice.org/2001/block-list">
<block-list:block block-list:abbreviated-name="adn" block-list:name="and" />
<block-list:block block-list:abbreviated-name="tesst" block-list:name="test" />
<block-list:block block-list:abbreviated-name="tust" block-list:name="test" />
<block-list:block block-list:abbreviated-name="seme" block-list:name="same"/>

第二个文件是:

cat final.txt
and
test
india

我可以使用这个命令提取第四行,但不知道如何与最终文件中的行进行比较

awk -F '\"' '{print $4}' DocumentList.xml

预期结果:

<block-list:block block-list:abbreviated-name="adn" block-list:name="and" />
<block-list:block block-list:abbreviated-name="tesst" block-list:name="test" />
<block-list:block block-list:abbreviated-name="tust" block-list:name="test" />

我也尝试过类似的方法,但它不会从 DocumetList 文件返回整行。

awk -F '\"' 'FNR==NR {a[$4]; next} $1 in a'  DocumentList.xml final.txt

final.txt 文件大小为 1 GB,DocumentList 文件大小为 25 MB,并且都具有 unicode 字符。

最佳答案

只是交换读取文件的顺序:

awk -F '\"' 'FNR==NR {a[$0]; next} $4 in a' final.txt DocumentList.xml

输出:

<block-list:block block-list:abbreviated-name="adn" block-list:name="and" />
<block-list:block block-list:abbreviated-name="tesst" block-list:name="test" />
<block-list:block block-list:abbreviated-name="tust" block-list:name="test" />

关于awk - 仅比较特定行上的 2 个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71404153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com