【发布时间】:2014-10-17 18:38:15
【问题描述】:
我遇到了一些我自己无法解决的奇怪问题。我有两个文件,内容如下:
文件 1.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 之间的差异,所以我的文件如下所示:
Diff.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
任何想法为什么这不起作用?
【问题讨论】: