ファイルのn番目の列を取得してシェルスクリプトに入力します。

ファイルのn番目の列を取得してシェルスクリプトに入力します。

2つの列を持つファイル(encrypted_pa​​ss.txt)があります。

user1 encrypted_pass1
user2 encrypted_pass2 
user3 encrypted_pass3
...

ユーザーパスワード(2番目の列)は暗号化されています。暗号化されたパスワードを復号化するシェルスクリプトがあります。スクリプトは暗号化されたパスワードを入力として使用し、それを復号化します。

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

関連情報