linux - 比较 2 个 Unix 文件并将匹配行输出到一个新文件?

标签 linux perl bash sed awk

我有 2 个 nix 文件。每个文件中的所有数据都在一行中。每个值由空字符分隔。数据匹配中的一些值。

我如何将这些数据解析到一个只列出匹配值的新文件中?

我想我可以使用 sed 将空字符更改为换行符?从那以后我不太确定...

有什么想法吗?

最佳答案

使用trsortcomm:

将空值转换为新行,并对结果进行排序:

$ tr '\000' '\n' < file1 | sort > file1.txt
$ tr '\000' '\n' < file2 | sort > file2.txt

然后使用 comm 获取两个文件共有的行:

$ comm -1 -2 file1.txt file2.txt
<lines shown here are the common lines between file1.txt and file2.txt>

关于linux - 比较 2 个 Unix 文件并将匹配行输出到一个新文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8722103/

相关文章:

perl - Perl 中的包变量不在 "scope"中?

c - 如何将自己的头文件目录添加到 Mac 终端 gcc?

linux - 使用 Bash 将两个字符之间的所有字符串提取到数组

bash - 为文件夹中的所有目录创建一个子目录

linux - 从文件中提取一个单词并将文件另存为该单词

linux -/usr/bin/ld : cannot find -llapack

c - 在我自制的 shell 中添加键盘快捷键

php - 排序/解析 MySQL 行字段中的异构 CSV 分隔文本值

macos - CPAN 安装几乎无法在 Mac 上运行,这正常吗?

linux - 编程 gnome 电源管理