sql - 逐行比较两个不同文本文件中的两个值

标签 sql linux shell

我有两个文本文件,我想逐行比较两个文本文件之间的数据,并且我必须将匹配的值维护到一个文件中,将不匹配的值维护到另一个文件中。 我给出的例子

a.txt
10
20
30

a.txt 中的值水平附加。

b.txt
10
30
20

b.txt 中的值垂直附加

你能帮我编写一个 shell 脚本来逐行比较上述两个文本文件。如果该行匹配,我必须将输出发送到一行,否则它必须将输出发送到另一个文件。

i/o 只有 10 个。(与位置比较一致)。

最佳答案

也许可以尝试:

paste a.txt b.txt | sed -n '/\([0-9]\+\)[[:space:]]\+\1/p' > c.txt

c.txt 将包含:

10 10

还有

paste a.txt b.txt | sed '/\([0-9]\+\)[[:space:]]\+\1/d' > d.txt

d.txt 将包含:

20 30
30 20

关于sql - 逐行比较两个不同文本文件中的两个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22742235/

相关文章:

mysql - 简化查询以获取行总和

mysql - 根据 2 行值删除重复项

mysql - 从同一张表的n-n关系中提取数据

c++ - 在我的 Linux C++ 项目中使用 Bullet

linux - 需要捕获 Linux 上触发的命令

mysql - 查询更改为将字段作为参数传递,并且不再有效

python - ntpath真的能解析类linux路径吗?

javascript - PM2 没有安装最新版本的 nodejs

linux - 如何在不读取整个文件的情况下从大文件末尾删除 X 字节?

shell - 如何在 shell 中的两列之间插入不同的分隔符