在awk内部执行mkpasswd [英] execute mkpasswd inside awk
本文介绍了在awk内部执行mkpasswd的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用awk
中的mkpasswd
来比较具有加密的文件字段(我使用Ubuntu):
I am trying to use mkpasswd
inside awk
to compare a file field with encryption (I use Ubuntu):
执行:
mkpasswd -m sha-512 word abcdefgh
输出:
$6$abcdefgh$SByAdlFKQWuVuMNFUL.ERj1CxsscDs.v6nR2h2cyIkM.PAEUEqaMudTk3I/yfyFeaJY/da4dJto/1wXxMCaok/
尝试:
awk 'mkpasswd -m sha-512 $7 abcdefgh =="$6$abcdefgh$SByAdlFKQWuVuMNFUL.ERj1CxsscDs.v6nR2h2cyIkM.PAEUEqaMudTk3I/yfyFeaJY/da4dJto/1wXxMCaok/"' FS=: file > file1
文件:
6:g:g:g:g:g:word1
7:g:g:g:g:g:word
8:g:g:g:g:g:word2
预期输出:
7:g:g:g:g:g:word
推荐答案
awk -F':' '
{
cmd = "mkpasswd -m sha-512 \047" $7 "\047 abcdefgh"
sha = ( (cmd | getline line) > 0 ) ? line : "N/A" )
close(cmd)
}
sha == "$6$abcdefgh$SByAdlFKQWuVuMNFUL.ERj1CxsscDs.v6nR2h2cyIkM.PAEUEqaMudTk3I/yfyFeaJY/da4dJto/1wXxMCaok/"
' file > file1
请参见 http://awk.freeshell.org/AllAboutGetline 了解是否/如何使用getline
,包括在这种情况下从管道读取.
See http://awk.freeshell.org/AllAboutGetline for if/how to use getline
, including reading from a pipe as in this case.
这篇关于在awk内部执行mkpasswd的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文