如何编写脚本以将CSV文件中的名称转换为QRCODES。
我有一个名为names.csv的CSV文件,名称为5000。 我还安装了qrcode包 在我从bash
运行csv文件的文件夹中qrcode "John Doe" john_doe.png
为John Doe创建了一个qrcode。
现在我需要从CSV创建5000多个qrcodes。我绝对没有想法,如何去做。
我也尝试过
qrcode names.csv names.png
但那只创造了1个qrcode图像。
答案 0 :(得分:1)
这样的东西?
#!/bin/bash
IFS=$'\n';
for name in $(cat names.csv); do
qrcode "$name" $(echo $name | tr ' ' '_').png;
done
IFS = $'\ n' - 将新行作为分隔符。由于行中会有空格,因此您需要将其设置为新行,以便在循环中正确运行它。
tr'''_' - 这实际上设置了图像名称的输出。我们将名字和姓氏之间的空格替换为下划线 _
答案 1 :(得分:0)
另一个版本 - 限制命令替换的使用:
#!/bin/bash
set -e
while IFS= read -r name; do
file=${name/ /_}.png
qrcode "$name" "$file"
done < names.csv
假设文件names.csv
只有一个&#34;字段&#34; - 每个完整的行是一个名称。此外,使用set -e
表示如果任何qrcode
调用失败,脚本将退出。