脚本通过 STDIN 重定向接受文件并以特定方式将结果输出到文件
script accept file via STDIN redirection and output result to a file in a specifical way
a:123234343
b:175645453
c:aadfefee
这是脚本应该接受的名为 "user" 的文件。我知道(cat 用户)可以从文件 "user" 中获取所有数据。但是,我想读取数据并且只将 "a:" 保留为变量并将“123234343”与另一个名为 "password" 的文件中的数据进行比较。
abcdefg
1234
arrewewe
这是 "password" 文件。在我的脚本中,我将获取这些数据并使用 sha256sum 获取哈希值,并将哈希值与文件 "user" 中的数据(例如 123234343)进行比较。如果哈希值与文件 [=18] 中的数据相同=],我需要将结果输出到一个名为"result"的新文件中。输出应该类似于 "a:abcdefg"。我知道 (>result) 会将一些数据发送到 "result" 文件。
所以我认为有一种方法可以将 "a:" 存储为一个变量,并将“123234343”存储为另一个变量。但是我不知道该怎么做,或者有比这更简单的方法。
我想你的意思是这样的:
#!/bin/bash
while IFS=':' read p1 p2; do
echo p1 is $p1, p2 is $p2
done < user
IFS
是输入字段分隔符,它将行分成字段,这样当您执行 read
时,它知道一个字段在哪里结束,下一个字段从哪里开始。
输出
p1 is a, p2 is 123234343
p1 is b, p2 is 175645453
p1 is c, p2 is aadfefee
到 运行 脚本,将其保存在名为 go
的文件中,然后像这样使其可执行:
chmod +x go
和运行是这样的:
./go
a:123234343
b:175645453
c:aadfefee
这是脚本应该接受的名为 "user" 的文件。我知道(cat 用户)可以从文件 "user" 中获取所有数据。但是,我想读取数据并且只将 "a:" 保留为变量并将“123234343”与另一个名为 "password" 的文件中的数据进行比较。
abcdefg
1234
arrewewe
这是 "password" 文件。在我的脚本中,我将获取这些数据并使用 sha256sum 获取哈希值,并将哈希值与文件 "user" 中的数据(例如 123234343)进行比较。如果哈希值与文件 [=18] 中的数据相同=],我需要将结果输出到一个名为"result"的新文件中。输出应该类似于 "a:abcdefg"。我知道 (>result) 会将一些数据发送到 "result" 文件。
所以我认为有一种方法可以将 "a:" 存储为一个变量,并将“123234343”存储为另一个变量。但是我不知道该怎么做,或者有比这更简单的方法。
我想你的意思是这样的:
#!/bin/bash
while IFS=':' read p1 p2; do
echo p1 is $p1, p2 is $p2
done < user
IFS
是输入字段分隔符,它将行分成字段,这样当您执行 read
时,它知道一个字段在哪里结束,下一个字段从哪里开始。
输出
p1 is a, p2 is 123234343
p1 is b, p2 is 175645453
p1 is c, p2 is aadfefee
到 运行 脚本,将其保存在名为 go
的文件中,然后像这样使其可执行:
chmod +x go
和运行是这样的:
./go