Using grep to match md5 hashes

前端 未结 4 722
独厮守ぢ
独厮守ぢ 2021-02-08 06:21

How can I match md5 hashes with the grep command?

In php I used this regular expression pattern in the past:

/^[0-9a-f]{32}$/i

But I t

相关标签:
4条回答
  • 2021-02-08 06:27

    You want this:

    grep -e "[0-9a-f]\{32\}" filename
    

    Or more like, based on your file format description, this:

    grep -e ":[0-9a-f]\{32\}" filename
    
    0 讨论(0)
  • 2021-02-08 06:27

    A little one-liner which works cross platform on Linux and OSX, only returning the MD5 hash value (replace YOURFILE with your filename):

    [ "$(uname)" = "Darwin" ] && { MD5CMD=md5; } || { MD5CMD=md5sum; } \
        && { ${MD5CMD} YOURFILE | grep -o "[a-fA-F0-9]\{32\}"; }
    

    Example:

    $ touch YOURFILE
    $ [ "$(uname)" = "Darwin" ] && { MD5CMD=md5; } || { MD5CMD=md5sum; } && { ${MD5CMD} YOURFILE | grep -o "[a-fA-F0-9]\{32\}"; }
    d41d8cd98f00b204e9800998ecf8427e
    
    0 讨论(0)
  • 2021-02-08 06:44

    Well, given the format of your file, the first variant won't work because you are trying to match the beginning of the line.

    Given the following file contents:

    a1:52:d048015ed740ae1d9e6998021e2f8c97
    b2:667:1012245bb91c01fa42a24a84cf0fb8f8
    c3:42:
    d4:999:85478c902b2da783517ac560db4d4622
    

    The following should work to show you which lines have the md5:

    grep -E -i '[0-9a-f]{32}$' input.txt
    
    a1:52:d048015ed740ae1d9e6998021e2f8c97
    b2:667:1012245bb91c01fa42a24a84cf0fb8f8
    d4:999:85478c902b2da783517ac560db4d4622
    

    -E for extended regular expression support, and -i for ignore care in the pattern and the input file.

    If you want to find the lines that don't match, try

    grep -E -i -v '[0-9a-f]{32}$' input.txt
    

    The -v inverts the match, so it shows you the lines that don't have an MD5.

    0 讨论(0)
  • 2021-02-08 06:48

    Meh.

    #!/bin/sh
    while IFS=: read filename filesize hash
    do
      if [ -z "$hash" ]
      then
        echo "$filename"
      fi
    done < hashes.lst
    
    0 讨论(0)
提交回复
热议问题