2013-01-17 36 views
1

我正在使用openssl來加密文件中的數據。通過awk和openssl檢索數據

在將該文件中的數據分配給shell變量的過程中,我動態解密該文件並嘗試使用它來解析變量。

$ 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指令不工作爲好。

任何人都可以提供見解嗎?

回答

1

你好像你的管道糊塗:這是你想要在Bruce-Wayne Batman 0.0.0.0其中第一場

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

是有效的:

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

echo | awk '{print $1}'是一樣的做echo你是管道輸出echo(這是什麼)分成awk

+0

謝謝。我錯誤地認爲管道從右到左 – sisko

+0

不要從左到右的數據流':''如果它有用,請考慮接受這個答案。 –

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

你不需要echo,你應該awk openssl命令的輸出。我沒有你的password.txt,所以我只是創建了一個明文的版本,並用cat password.txt替換了你的openssl命令。用你的訂單,回聲,我得到你的outpupt。用我的命令,沒有回聲,我得到了布魯斯 - 韋恩。

+0

謝謝。我很感謝你的回答 – sisko