我在Mac上的终端中使用以下命令来读取电子邮件地址文件并将其转换为MD5哈希。
tr -d " " < em.txt | tr '[:upper:]' '[:lower:]' | while read line; do
(echo -n $line | md5); done | awk '{print $1}' > hashes1.txt
这将生成一个比原始输入文件短1行的哈希文件。但我无法弄清楚为什么。
这段代码做了一些事情,如下。
提前致谢!
你的tr命令是错误的:它应该是:
tr -d " " < em.txt |
tr '[[:upper:]]' '[[:lower:]]' |
while IFS= read -r line; do
echo -n "$line" | md5 | awk '{print $1}' >> hashes1.txt
done
要么
while IFS= read -r line; do
echo -n "$line" | md5 | awk '{print $1}' >> hashes1.txt
done < <(tr -d " " < em.txt | tr '[[:upper:]]' '[[:lower:]]')
也改变了文件馈送位置。
并确保您的文件没有奇怪的字符
od -c file
如果是,请安装dos2unix
,然后:
dos2unix file
或使用perl:
perl -i -pe 's/\r//g' file