gpt4 book ai didi

Shell 脚本 - 使用 grep 无法在文件中找到字符串

转载 作者:行者123 更新时间:2023-12-01 15:08:21 26 4
gpt4 key购买 nike

我遇到了一些我自己无法解决的奇怪问题。我有两个文件,内容如下:

File1.txt

Butterscotch;lkt+4S7Yhzf/g
Sox;WrWMzN6HD
Table;K4yPIK+SFfTFs
tram;YaY3opP9ie
number;e/WwiF5aihUY
Buttler;Nsadlkt+4S7Yhz
wzahwahwah;PYaY3opP9ieH

文件2.txt

Butterscotch;lkt+4S7Yhzf/g
Sox;WrWMzN6HD
Table;K4yPIK+SFfTFs
tram;YaY3opP9ie
number;e/WwiF5aihUY

我需要找出这两个文件之间的差异,但仅限于分号之前的条目,所以我首先使用 awk 来获取这些条目:

awk 'BEGIN {FS=";"}; {print $1}' File1.txt > Output1.txt
awk 'BEGIN {FS=";"}; {print $1}' File2.txt > Output2.txt

新文件包含如下条目:

Output1.txt

Butterscotch
Sox
Table
tram
number
Buttler
wzahwahwah

Output2.txt

Butterscotch
Sox
Table
tram
number

然后我使用 grep -Fxvf Output2.txt Output1.txt > Diff.txt 打印出 Output2.txt 和 Output1.txt 之间的差异,所以我的文件如下所示:

差异.txt

Buttler
wzahwahwah

现在是棘手的部分。我需要从 File1.txt 中查找以 Diff.txt 中的条目开头的整行并将其打印到另一个文件中。我正在声明一个变量并执行如下操作:

variable=$(cat Diff.txt)
grep $variable Output1.txt > Delete.txt

所以对于这个例子,我应该得到这样的东西:

删除.txt

Buttler;Nsadlkt+4S7Yhz
wzahwahwah;PYaY3opP9ieH

但不幸的是我得到一个错误:

grep: wzahwahwah: No such file or directory

文件 Delete.txt 而不是所需的数据包含:

/home/working/File1.txt:Buttler;Nsadlkt+4S7Yhz

所以这离我需要得到的还很远。我注意到,当我从 File1.txt

中删除时
wzahwahwah;PYaY3opP9ieH

我没有收到任何错误,我想要的文件如下所示:

Buttler;Nsadlkt+4S7Yhz

知道为什么这不起作用吗?

最佳答案

代替你的 cat 和随后的 grep 使用这个 grep:

grep -Ff Diff.txt File1.txt
Buttler;Nsadlkt+4S7Yhz
wzahwahwah;PYaY3opP9ieH

关于Shell 脚本 - 使用 grep 无法在文件中找到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26419882/

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