gpt4 book ai didi

linux - Bash:比较两个文件并更改输出

转载 作者:太空狗 更新时间:2023-10-29 11:32:34 26 4
gpt4 key购买 nike

尝试用我的脚本修复输出内容,但不起作用..
让我们将这两个文件命名为“文件 A”和“文件 B”
文件 A 的内容字符串如下:

C Test aa.test.com
D Test bb.example.com
G Test cc.try.example.com
K Test dd.test.com
M Test cc.ee.try.example.com
O Test .test.com
T Test gg-1-2.example.com
U Test hh.example.com
X Test example.com

文件 B 是:

test.com
example.com
try.example.com

尝试比较两个文件并使输出如下:

C Test test.com
D Test example.com
G Test try.example.com
K Test test.com
M Test try.example.com
O Test test.com
T Test example.com
U Test example.com
X Test example.com

这是我的示例代码:

#!/bin/bash
File_A="/root/temp/File_A"
File_B="/root/temp/File_B"

awk -v File_B="$File_B" -v OFS=" " '
BEGIN {
while ( ( getline < File_B ) > 0 ){

VAL = $0
sub( /^[^ ]+ /, "", VAL )

DICT[ $1 ] = VAL
}
}
{
print $0, DICT[ $1 ]

}' $File_A
exit

输出后还是和文件A一样的内容,想不通

C Test aa.test.com 
D Test bb.example.com
G Test cc.try.example.com
K Test dd.test.com
M Test cc.ee.try.example.com
O Test .test.com
T Test gg-1-2.example.com
U Test hh.example.com
X Test example.com

或者可以通过其他命令实现?

最佳答案

你可以使用这个:

grep -of file_B file_A | paste <(grep -f file_B file_A | cut -d' ' -f1,2 ) -

关于linux - Bash:比较两个文件并更改输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24647254/

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