要从两个不同的文件中提取相同的行,可以使用bash脚本来实现。下面是一个简单的bash脚本示例,它使用comm
命令来找出两个文件中的相同行。
#!/bin/bash
# 检查参数数量
if [ "$#" -ne 2 ]; then
echo "Usage: $0 file1 file2"
exit 1
fi
# 检查文件是否存在
if [ ! -f "$1" ]; then
echo "File $1 does not exist."
exit 1
fi
if [ ! -f "$2" ]; then
echo "File $2 does not exist."
exit 1
fi
# 使用comm命令提取相同行
comm -12 <(sort "$1") <(sort "$2")
comm
是一个用于比较两个已排序文件的Unix/Linux命令。它可以显示两个文件中的相同行、只在第一个文件中的行和只在第二个文件中的行。sort
命令用于对文件内容进行排序。comm
命令可以简洁地实现文件内容的比较。comm
命令是一种文件比较工具。comm
命令要求输入文件必须是已排序的,因此脚本中使用了sort
命令对文件进行排序。假设有两个文件file1.txt
和file2.txt
,内容如下:
file1.txt
apple
banana
cherry
date
file2.txt
banana
cherry
date
elderberry
运行脚本:
./extract_same_lines.sh file1.txt file2.txt
输出:
banana
cherry
date
这个脚本可以在任何支持bash的Unix/Linux系统上运行。如果你有任何进一步的问题或需要更多的帮助,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云