![获取文件的第 n 列并将它们输入到 shell 脚本中](https://linux22.com/image/107650/%E8%8E%B7%E5%8F%96%E6%96%87%E4%BB%B6%E7%9A%84%E7%AC%AC%20n%20%E5%88%97%E5%B9%B6%E5%B0%86%E5%AE%83%E4%BB%AC%E8%BE%93%E5%85%A5%E5%88%B0%20shell%20%E8%84%9A%E6%9C%AC%E4%B8%AD.png)
我有一个包含 2 列的文件 (encrypted_pass.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