1

我有一个名为 shadow.lab4 的文件,其中包含以下字符并存储在桌面中:

$6$bIhKGKp3$LSd47ADZexr.4rBm8y29DLPfd1kxwyuliCea8fExg0ohMT25OAEqUOxKm7t6dj/M50PjACjD.gn.VDD8f4MVy0

现在我正在尝试使用 grep 命令检索加密数据并将其存储在变量 encr 中。然后使用在屏幕上显示检索到的数据

echo $encr

我的预期输出应该是

LSd47ADZexr.4rBm8y29DLPfd1kxwyuliCea8fExg0ohMT25OAEqUOxKm7t6dj/M50PjACjD.gn.VDD8f4MVy0

您知道我必须使用“grep”来获得预期输出的代码吗?

4

3 回答 3

3

我不知道您为什么将":"其用作分隔符cut,但输入字符串中根本没有冒号。将脚本的剪切部分更改为

cut -d '$' -f 4
于 2012-09-02T06:31:58.080 回答
1

编码:

如果加密始终是字符串中的第 4 个字段:

encr=$(awk -F "$" '{ print $4 }' shadow.lab4)

如果加密始终是字符串中的最后一个字段:

encr=$(awk -F "$" '{ print $NF }' shadow.lab4)

结果:

echo "$encr"
LSd47ADZexr.4rBm8y29DLPfd1kxwyuliCea8fExg0ohMT25OAEqUOxKm7t6dj/M50PjACjD.gn.VDD8f4MVy0

盐:

要访问盐,如果它始终是第三个字段:

salt=$(awk -F "$" '{ print $3 }' shadow.lab4)

要访问盐,如果它总是倒数第二个字段:

salt=$(awk -F "$" '{ print $(NF-1) }' shadow.lab4)

结果:

echo "$salt"
bIhKGKp3
于 2012-09-02T08:08:48.120 回答
0

sed方式:

encr = `sed 's/.*\$//' file.txt
于 2012-09-02T08:34:45.367 回答