我正在使用 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 指令效果不如预期。
有人能提供见解吗?
答案 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。使用我的订单,没有回声,我得到了布鲁斯 - 韦恩。