Bash: удалить первую строку стандартного ввода - PullRequest
1 голос
/ 03 декабря 2011

Я создал скрипт для создания учетной записи, который читает из файла CSV, мне не нужна первая строка в CSV, поскольку он содержит заголовки для столбцов, я пытаюсь удалить первую строку, используя файл sed 1d $, но, похоже, не работает.

#!/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

там все равнопропустить первую строку?

1 Ответ

3 голосов
/ 03 декабря 2011

Попробуйте использовать tail -n +2 $FILE вместо sed.

Вы читаете из неотредактированного файла с перенаправлением в конце: done < $FILE.Попробуйте изменить эту строку на done.

...