사용자를 추가하기 위해 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