通过awk和openssl检索数据

时间:2013-01-17 13:53:55

标签: awk openssl

我正在使用 openssl 来加密文件中的数据。

在将该文件中的数据分配给shell变量的过程中,我动态解密文件并尝试使用 awk 将其解析为变量。

$ myuser=$(echo | awk '{print $1}' | openssl aes-256-cbc -in encrypted -pass file:../password.txt -d) 
$ echo $myuser 
Bruce-Wayne Batman 0.0.0.0

我应该回应Bruce-Wayne,但不知怎的,我的 awk 指令效果不如预期。

有人能提供见解吗?

2 个答案:

答案 0 :(得分:1)

你似乎把你的管道搞糊涂了:

$ myuser=$(openssl aes-256-cbc -in encrypted -pass file:../password.txt -d | awk '{print $1}')

那就是你想要Bruce-Wayne Batman 0.0.0.0中第一个有效的字段:

echo "Bruce-Wayne Batman 0.0.0.0" | awk '{print $1}'

执行echo | awk '{print $1}'与将echo (什么都不是)的输出汇总到echo的{​​{1}}相同。< / p>

答案 1 :(得分:1)

myuser=$(openssl aes-256-cbc -in encrypted -pass file:../password.txt -d | awk '{print $1}') 

你不需要echo,你应该知道openssl命令的输出。我没有你的password.txt所以我只是创建了一个明文版本,并用cat password.txt替换了你的openssl命令。使用你的订单,回声,我得到你的outpupt。使用我的订单,没有回声,我得到了布鲁斯 - 韦恩。