2つの変数を取得するためにCSVの複数の行を繰り返す方法は?

2つの変数を取得するためにCSVの複数の行を繰り返す方法は?

ユーザー名とパスワードを含むCSVファイルがあります。ファイルは次のようになります。

user1,password1
user2,password2
user3,password3

ユーザー名とパスワードをインポートし、その変数を使用してから、次のユーザー名とパスワードのセットをインポートし、変数の内容を新しい変数に置き換えるには、各行を繰り返す必要があります。

私はこれを行うための最良の方法を探していましたが、スクリプトに慣れていないので、私は迷子になりました。私は両方とも別々に持ってきましたが、whileループ内でそれらを使用するawk方法を見つけようとしています。awk私はこれが良いアプローチではないかもしれないことを読んでいます。

答え1

あなたが良いパスワードを持っているとします。

user1,",3 ""e`$^~´"
user2,""")& Eu`id`"
user3,ThisIsAlsoAGoodPasswordBecauseItIsLong

次に、CSVを解析できることが必要です(「内部」は「です」)。

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

ksh93ファイルが適切なCSVファイルの場合は、代わりにCSV解析をサポートするファイルを使用できます。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

関連情報