bash – 哈希文本文件中的每一行

前端之家收集整理的这篇文章主要介绍了bash – 哈希文本文件中的每一行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试编写一个小脚本,它将打开一个文本文件,并为每行文本提供一个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相关文章