linux - 逐行读取文件->在另一个文本文档中搜索每一行,如果匹配,则输出到另一个文本文件

标签 linux bash shell

我有一个带有两个参数的脚本。

ls $1 > $1.txt
ls $2 > $2.txt  

我现在有 a.txt($1 是目录“a”,$2 是目录“b”)和 b.txt,每个文件中都列出了它们的内容。我想做的是在 a.txt 中逐行搜索,看看 b.txt 中是否有匹配项。

如果我在 a.txt 中有这些文件:

file1 -> search for file1 in b.txt, if match, output to a_match.txt
file2 -> search for file2 in b.txt, if match, output to a_match.txt
file3 -> search for file3 in b.txt, if match, output to a_match.txt  

b.txt 反之亦然。我该怎么做?此外,没有寻找替代方法来执行此操作,还有很多其他方法可以检查目录之间的差异,但这是我的作业唯一可接受的方法:(

最佳答案

这是一个我认为可以满足您要求的快速解决方案:

fgrep -x -f b.txt a.txt > a_match.txt

关于linux - 逐行读取文件->在另一个文本文档中搜索每一行,如果匹配,则输出到另一个文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5284785/

相关文章:

linux - 在字符串 bash 中连接变量

arrays - 如何使用包含带空格的字符串的数组执行命令 linux

java - 在 Mac OS X 上安装、配置和运行 Hadoop 2.2.0

Linux,检查当前没有正在运行的 cron 作业的代码?

linux - 创建一个 SFTP 用户以仅访问一个目录。

python - 有没有办法使用 Perl 或 Python 检索进程统计信息?

linux - 为什么 cx_Freeze 在 64 位 Debian Linux 上运行时会生成 32 位可执行文件?

macos - 无法在 OS X 10.10 上为 Qt Creator 设置自定义 $PATH

java - Groovy 中的系统调用失败

linux - Bash:将 getops 用于此特定用途