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.

관련 정보