实现两个文件内容逐行进行对比的shell脚本

写一个实现两个文件内容逐行进行对比的shell脚本,将两个文件相同的内容输出到一个文件中。

代码实现如下:

#!/bin/bash
#output is the same line in file1 andfile2

for line1 in $(cat $1)
    do
        grep $line1 $2 > /dev/null
            if [ $? -eq 0 ]; then
               echo "${line1}" >> samefile.txt
            fi
    done

执行脚本:

wenks@androidos:~$ ./compileFile.sh ./file_1.txt ./file_2.txt

执行完后,会在脚本存放同目录下生成一个名称为samefile.txt的文件,这个文件中就保存了file_1.txt和file_2.txt相同的内容。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 下面是一个可以比较两个文件内容的简单 shell 脚本: ``` #!/bin/bash # 比较两个文件内容 if cmp -s "$1" "$2"; then echo "文件内容相同" else echo "文件内容不同" fi ``` 使用方法: 1. 将上面的代码保存为 `compare.sh` 文件 2. 使用 `chmod +x compare.sh` 给脚本授权 3. 运行 `./compare.sh 文件1 文件2`,其中 `文件1` 和 `文件2` 是你要比较两个文件的名称 如果文件内容相同,脚本会输出 `文件内容相同`;如果不同,输出 `文件内容不同`。 ### 回答2: 编写一个shell脚本,可以比较两个文件内容。这个脚本首先需要接受两个文件名作为参数,然后逐行比较两个文件内容。如果文件内容完全相同,则输出"文件内容相同",如果文件内容不同,则输出不同的行和对应行数。 以下是一个示例的shell脚本: ```bash #!/bin/bash file1=$1 # 第一个文件名 file2=$2 # 第二个文件名 line=0 # 行号初始化 # 检查是否传入了两个文件名 if [ ! -f "$file1" ] || [ ! -f "$file2" ]; then echo "请提供两个文件名作为参数" exit 1 fi # 比较两个文件内容 while IFS= read -r a && IFS= read -r b <&3; do ((line++)) if [ "$a" != "$b" ]; then echo "文件内容不同,第 $line 行:" echo "$file1: $a" echo "$file2: $b" fi done < "$file1" 3< "$file2" # 如果文件内容完全相同 if [ $line -eq 0 ]; then echo "文件内容相同" fi ``` 在命令行中执行这个脚本时,可以像这样提供两个文件名作为参数: ```bash $ ./compare.sh file1.txt file2.txt ``` 输出将根据文件内容是否相同而有所不同。 ### 回答3: 编写一个shell脚本,能够比较两个文件内容。 首先,我们需要使用`diff`命令来比较两个文件内容是否相同。下面是一个简单的shell脚本示例: ```shell #!/bin/bash # 检查输入参数是否为两个文件 if [ $# -ne 2 ]; then echo "请输入两个文件名作为参数。" exit 1 fi file1=$1 file2=$2 # 检查文件是否存在 if [ ! -f $file1 ] || [ ! -f $file2 ]; then echo "文件不存在。" exit 1 fi # 使用diff命令比较文件内容 output=$(diff $file1 $file2) # 判断输出是否为空,即两个文件是否相同 if [ -z "$output" ]; then echo "两个文件内容相同。" else echo "两个文件内容不同。" fi ``` 保存以上脚本为`compare_files.sh`,然后在终端中运行以下命令: ```shell $ chmod +x compare_files.sh $ ./compare_files.sh file1.txt file2.txt ``` 其中`file1.txt`和`file2.txt`是你要比较两个文件的名称。脚本会输出两个文件内容是否相同。如果相同,输出`两个文件内容相同`;如果不同,输出`两个文件内容不同`。 请注意,在这个脚本中,我们假设要比较文件都是文本文件。如果文件不是文本文件,可能会得到错误的比较结果。如果需要比较非文本文件,请使用其他适合的工具或方法进行比较

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值