2011-12-03 2 views
1

csv 파일에서 읽는 계정 생성 용 스크립트를 만들었습니다. csv에 첫 번째 줄이 필요하지 않습니다. 첫 번째 줄은 sed 1d $ file을 사용하지만 작동하지 않는 것 같습니다.Bash : stdin의 첫 번째 줄을 지우십시오.

#!/bin/bash 

FILE="applicants.csv" 

sed 1d $FILE |while IFS=: read USERNAME PASSWORD SCHOOL PROGRAM STATUS; do 

#------------------------------------------ 
groupadd -f $SCHOOL 
useradd $USERNAME -p $PASSWORD -g $SCHOOL 
if [ $? == 0 ]; then 
echo 
echo "Success! $USERNAME created" 
grep $USERNAME /etc/passwd 
echo 
#------------------------------------------ 

else 
echo "Failed to create account for $USERNAME" 
fi 

done < $FILE 

여기 CSV 파일 여기

Full Name:DOB:School:Program:Status 
JoseDavid:22-08-86:ACE:Bsc Computing:Unfinished 
YasinAhmed:22-07-85:ACE:Bsc Networking:Complete 
MohammedAli:21-04-84:ACE:Bsc Forensics:Complete 
UtahKing:22-09-84:ACE:BSC IT:Unfinished 
UsmanNaeem:21-09-75:ACE:BSC Computing:Complete 

출력 http://i.stack.imgur.com/R5zPN.jpg

의 스크린 샷은 제 광고를 건너 어쨌든 임?

답변

3

sed 대신 tail -n +2 $FILE을 사용해보세요.

편집되지 않은 파일의 끝에있는 리디렉션 : done < $FILE을 읽는 중입니다. 해당 행을 done으로 변경하십시오.

+0

아직 첫 줄을 읽었으며, ive도 awk로 시도했지만 아무 일도 일어나지 않았습니다. –

+0

죄송합니다! 나는 진짜 문제를 발견하고 나의 대답을 업데이트했다. –

+1

만약 내가 다음을 얻으면 ./bulk : 21 행 : 예기치 않은 토큰'$ FILE '근처에서 구문 오류가 발생한다. ./bulk : line 21 :'done $ FILE' –

관련 문제