CSV 파일을 통해 구문 분석하여 사용자 추가

CSV 파일을 통해 구문 분석하여 사용자 추가

사용자를 추가하기 위해 CSV 파일을 구문 분석하는 데 문제가 있습니다.

1000명의 사용자 목록을 추가하는 작은 스크립트를 작성했습니다.

export IFS=","

cat users.csv | while read a b c d e f g; do useradd -d -u $a -U $d ; done

CSV 파일의 형식은 다음과 같습니다.

ps2946,male,Phil Harris,Recording,6508 Hollywood Blvd,Nov 16 1950,760 901 3537
mc3225,male,Mel Blanc,Radio,6385 Hollywood Blvd.,Oct 1 1983,626 647 5560
fn1029,male,Franklin Pangborn,Motion pictures,1500 Vine Street,Mar 10 1911,858 497 6108
we9602,undefined,Webb Pierce,Recording,1600 Vine Street,Sep 3 1988,559 595 6063

그러나 스크립트를 실행하면 전체 파일을 반복하여 다음을 반복합니다.

useradd: invalid home directory '-u'

저는 내보내기 IFS를 사용하여 단어를 쉼표로 구분하고 이를 useradd 명령의 매개변수로 사용했습니다.

매뉴얼을 읽고 홈 디렉토리의 값을 사용했지만 전체 스크립트가 꺼져 있는 것 같은 느낌이 듭니다.

CSV 파일에서 사용자를 추가하기 위해 스크립트 형식을 올바르게 지정하는 데 도움을 주실 수 있나요?

참고로 저는 이 스레드를 기본으로 사용했습니다.https://stackoverflow.com/questions/4439536/shell-script-to-parse-through-a-file-csv-and-process-line-by-line

답변1

오류는 다음 단어가 기본 홈 디렉토리( 아님)의 홈 디렉토리 경로 또는 디렉토리 이름이 될 것으로 예상하는 옵션을 useradd사용하여 호출하기 때문에 발생합니다 .-d-u

첫 번째 제안으로 다음을 시도해 보세요.

cat users.csv | while read a b c d e f g; do useradd -d "$a" -U "$d" ; done

관련 정보