我有一个包含用户名和密码的 CSV 文件。该文件看起来像这样:
user1,password1
user2,password2
user3,password3
我需要循环遍历每一行以获取用户名和密码,使用这些变量,然后获取下一组用户名和密码,用新的变量替换变量的内容,等等。
我一直在寻找最好的方法来做到这一点,但我不太熟悉脚本,而且我迷路了。我曾经awk
单独抓取两者,但我正在努力弄清楚如何awk
在 while 循环内使用。我正在阅读这可能不是一个很好的方法。
答案1
假设您有一些很好的密码:
user1,",3 ""e`$^~´"
user2,""")& Eu`id`"
user3,ThisIsAlsoAGoodPasswordBecauseItIsLong
然后你需要一些可以解析 CSV 的东西(“” inside “ 是一个”)。
cat user+password.csv | parallel --csv do_stuff {1} {2}
答案2
我认为这里不需要 awk:
#!/bin/bash
while IFS=, read -r user pass; do
# something with "$user" "$pass"
done < path/to/file.csv
答案3
如果文件是正确的 CSV 文件,您可以使用支持解析 CSV 的文件ksh93
来代替:bash
#! /usr/bin/env ksh93
while IFS=, read -rS user password; do
something with "$user" and "$password"
done
在像这样的输入上
user,"a""b
c,d"
这将正确设置$user
为user
和$password
到a"b<LF>c,d
。