【问题标题】:Bash - editing code lineBash - 编辑代码行
【发布时间】:2017-01-12 16:46:15
【问题描述】:

此问题与Bash - Compare 2 lists of files with their md5 check sums有关

我的问题是如何编辑以下代码以显示文件的整个路径而不是文件名:

awk -F"/" 'FNR==NR{filearray[$1]=$NF; next }!($1 in filearray){printf "%s has a different md5sum\n",$NF}' file1 file2

awk -F"/" 'FNR==NR{filelist[$NF]=$NF; next;}!($NF in filelist){printf "%s is an extra file",$NF}' file1 file2

有关更多信息,请查看其他问题!

感谢大家的时间和帮助!

【问题讨论】:

    标签: linux bash shell awk md5


    【解决方案1】:

    使用GNU Awk 字符串操作split-function 来拆分匹配行,在本例中为$0,并将其作为单独的元素存储在array 中。

     awk -F"/" 'FNR==NR{filearray[$1]=$NF; next }!($1 in filearray){split($0,array," ");printf "%s has a different md5sum or do not exist in the vanilla core files\n",array[2]}' file2 file1
    /home/user/vanila/file-4.php has a different md5sum or do not exist in the vanilla core files
    

    对于文件

     awk -F"/" 'FNR==NR{filelist[$NF]=$NF; next;}!($NF in filelist){split($0,array," "); printf "%s is an extra file\n",array[2]}' file1 file2
    /home/user/file-1.1.php is an extra file
    

    【讨论】:

    • 谢谢。我是 bash 脚本的初学者,尤其是使用 GNU Awk,这就是为什么代码对我来说非常复杂!
    • @SasnycoN:发布自己的尝试,往往会吸引更多答案!干杯!了解更多关于 Awk 的信息,因为它非常强大。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2016-01-09
    • 2012-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多