grep字符串之后的所有内容

时间:2012-10-12 17:52:43

标签: grep

我只需要grep md5哈希

这是哈希

MD5 (mt.pm) = adcddd9492c707642d2bcffbfc67b7a6

它需要看起来像这样

adcddd9492c707642d2bcffbfc67b7a6

或做反向

crapb0c63a3cb776502fe03706b2fd540439 /home/mta.pm“

并且只获取哈希值 现在线索如何 任何帮助

2 个答案:

答案 0 :(得分:0)

要进行grep,请执行以下操作(这不适用于所有grep implementations):

grep -o '[a-z0-9]*$'

或者您可以使用sed:

sed 's/.*= *\([a-z0-9]*\)$/\1/'

答案 1 :(得分:0)

试试这个(GNU grep):

grep -oP '.* \K.*$'

或更好:

grep -o '[[:xdigit:]]\{32\}$' 

bash

read -a arr <<< 'MD5 (mt.pm) = adcddd9492c707642d2bcffbfc67b7a6'
echo ${arr[-1]}

使用\{32\}它会更强大。 md5始终为32个十六进制字符,请参阅http://en.wikipedia.org/wiki/MD5


[[:xdigit:]]POSIX class regex,表示只匹配十六进制字符。


<强>最后

如果要匹配字符串中长度为32个十六进制的字符:

grep -o '[[:xdigit:]]\{32\}'

会做到这一点。