Grep来自文件bash shell脚本的数据

时间:2012-09-02 06:21:52

标签: linux bash shell

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

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

现在我尝试使用grep命令检索加密数据并将其存储在变量encr中。然后使用

在屏幕上显示检索到的数据
echo $encr

我的预期输出应为

LSd47ADZexr.4rBm8y29DLPfd1kxwyuliCea8fExg0ohMT25OAEqUOxKm7t6dj/M50PjACjD.gn.VDD8f4MVy0

您是否知道我必须使用'grep'来获取预期输出的代码?

3 个答案:

答案 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