如何循环遍历多行 CSV 来获取 2 个变量?

如何循环遍历多行 CSV 来获取 2 个变量?

我有一个包含用户名和密码的 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"

这将正确设置$useruser$passworda"b<LF>c,d

相关内容