【问题标题】:Need shell script to compare files需要shell脚本来比较文件
【发布时间】:2017-02-07 04:53:36
【问题描述】:

我想一次选择一个文件(file1.txt)的一行并与另一个文件(file2.txt)的所有行进行比较,并检查该行是否有任何条目。

我有两个文件(file1.txt 和 file2.txt)
并且文件中出现的文件名也出现在目录 gdir/db/files 中。

file1.txt

/db/day_files/data_feed20161231
/db/day_files/data_feed20161229
/db/day_files/data_feed20161125
/db/day_files/data_feed20161118

file2.txt
data_feed20161229
data_feed20161125

Req1 : 首先我们要检查 file1.txt 和 file2.txt 文件是否存在于目录 gdir/db/files 中。 如果任何文件不存在,则显示消息 file1.txt 不存在 (或)file2.txt 不存在(或)file1.txt 和file2.txt 不存在。

Req2:从file1.txt读取文件名(一次一行) 并将其与循环中 file2.txt 文件中存在的所有(所有行)名称进行比较。 并且该循环将运行一次检查一个文件名。

一个。如果文件名匹配,则将该文件移动到路径 gdir/old/files 并将值 10 返回给变量,如果存在更多文件名,则将继续运行。 湾。如果文件名在列表中不匹配,它将返回值 20 并继续其他。

请帮助我。 提前致谢。

【问题讨论】:

  • 使用 linux diff 命令。喜欢 - diff file1.txt file2.txt

标签: shell unix


【解决方案1】:
while read line; do
    if grep -Fxq "$line" file-where-search.txt
    then
        # code if found
    else
        # code if not found
    fi
done <file-source.txt

添加路径到文件名使用字符串:

"/path/to/file/$line"

删除路径并仅使用文件名

filename=`basename "/path/to/file/filename.ext"`

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2018-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多