我有一个名为shadow.lab4的文件,其中包含以下字符并存储在桌面中:
$6$bIhKGKp3$LSd47ADZexr.4rBm8y29DLPfd1kxwyuliCea8fExg0ohMT25OAEqUOxKm7t6dj/M50PjACjD.gn.VDD8f4MVy0
现在我尝试使用grep命令检索加密数据并将其存储在变量encr中。然后使用
在屏幕上显示检索到的数据echo $encr
我的预期输出应为
LSd47ADZexr.4rBm8y29DLPfd1kxwyuliCea8fExg0ohMT25OAEqUOxKm7t6dj/M50PjACjD.gn.VDD8f4MVy0
您是否知道我必须使用'grep'来获取预期输出的代码?
答案 0 :(得分:3)
我不知道你为什么使用":"
作为cut
的分隔符,但输入字符串中根本没有冒号。将脚本的剪切部分更改为
cut -d '$' -f 4
答案 1 :(得分:1)
<强> ENCR:强>
如果加密始终是字符串中的第4个字段:
encr=$(awk -F "$" '{ print $4 }' shadow.lab4)
如果加密始终是字符串中的最后一个字段:
encr=$(awk -F "$" '{ print $NF }' shadow.lab4)
结果:
echo "$encr"
LSd47ADZexr.4rBm8y29DLPfd1kxwyuliCea8fExg0ohMT25OAEqUOxKm7t6dj/M50PjACjD.gn.VDD8f4MVy0
<强>盐强>
要访问salt,如果它始终是第三个字段:
salt=$(awk -F "$" '{ print $3 }' shadow.lab4)
要访问salt,如果它始终是倒数第二个字段:
salt=$(awk -F "$" '{ print $(NF-1) }' shadow.lab4)
结果:
echo "$salt"
bIhKGKp3
答案 2 :(得分:0)
sed
方式:
encr = `sed 's/.*\$//' file.txt