获取文件的第 n 列并将它们输入到 shell 脚本中

获取文件的第 n 列并将它们输入到 shell 脚本中

我有一个包含 2 列的文件 (encrypted_pa​​ss.txt):

user1 encrypted_pass1
user2 encrypted_pass2 
user3 encrypted_pass3
...

用户密码(第二列)已加密。我有一个 shell 脚本可以解密加密的密码。该脚本采用加密的密码作为输入并对其进行解密:

decryptor.sh -d encrypted_password

我想要做的是从文件(第 2 列)中获取加密密码,解密并将加密密码写入新文件。因此,输出文件应该是:

user1 decrypted_pass1
user2 decrypted_pass2 
user3 decrypted_pass3
...

我怎样才能用 awk 做到这一点?

答案1

您可以使用system过程从内部调用脚本awk

awk '{printf $1" "; system("decryptor.sh -d " $2)}' file1 > file2

答案2

你也可以使用这样的东西:

cut -f2 -d " " input_file | xargs -n1 decryptor.sh -d > output_file

相关内容