散列包含多列的电子邮件列表

Hashing a list of emails containing multiple columns

我有一个包含 2 列的文本文件:ID 和电子邮件地址。我想输出一个文件来读取每一行并输出 ID 以及电子邮件的 sha256 散列版本。

输入示例:

200015 jhon.smith@gmail.com
200016 larry.power@gmail.com

输出文件:

200015  ae40fc9f2cf25b2b9f3cc89020ece6dd01015631d5c87483dcd3cd0c296b5eeb
200016  e420b22e7b6601ce3f416f059626688b5bc01f2c108e05798b9df4f83da3f991

我正在使用以下代码:

while read line; do
    echo $line | cut -d' ' -f2 | tr -d " \t\n\r" | sha256sum | cut -f1 -d' '
done < file_name

这只输出经过哈希处理的电子邮件。我如何调整代码以包含 ID?

试试这个:

while read -r ID EMAIL
do
  echo "$ID $( echo "$EMAIL" |tr -d " \t\n\r"| sha256sum | cut -f1 -d' ')"
done < file_name