我正在尝试编写一个小脚本,它将打开一个文本文件并为每行文本提供一个 md5 哈希值。例如我有一个文件:
123
213
312
我希望输出为:
ba1f2511fc30423bdbb183fe33f3dd0f
6f36dfd82a1b64f668d9957ad81199ff
390d29f732f024a4ebd58645781dfa5a
我正在尝试在 bash 中完成这一部分,它将读取每一行:
#!/bin/bash
#read.file.line.by.line.sh
while read line
do
echo $line
done
稍后我会:
$ more 123.txt | ./read.line.by.line.sh | md5sum | cut -d ' ' -f 1
但我在这里遗漏了一些东西,不起作用:(
也许有更简单的方法...
最佳答案
差不多了,试试这个:
while read -r line; do printf %s "$line" | md5sum | cut -f1 -d' '; done < 123.txt
除非您还想散列每一行中的换行符,否则您应该使用 printf
或 echo -n
而不是 echo
选项。
在脚本中:
#! /bin/bash
cat "$@" | while read -r line; do
printf %s "$line" | md5sum | cut -f1 -d' '
done
可以使用多个文件作为参数调用脚本。
关于bash - 哈希文本文件中的每一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5890136/