我absolutaly不知道如何得到這個腳本排序出生日期在Birthdays.csv的信息。 我知道sort -n命令,但是我希望通過DOB對文件birthdays.csv進行排序。我將如何去做這件事?
下面的腳本獲取用戶信息和出生日期,然後將這些信息放到一個名爲「birthday.csv」的文件中。
然後我需要按出生日期排序「birthdays.csv」,然後顯示這個新排序的信息。我還計算每個人在今天的日期的年齡。我遇到的問題是按出生日期排序birthdays.csv中的信息。有人能讓我知道我會怎麼做嗎?
下面的腳本是:
a=0
while [ $a -lt 2 ];
do
echo Please enter a first name
read firstName
echo Please enter last name
read lastName
echo Please enter phone number
read phoneNumber
echo Please enter date of birth - format dd/mm/yyyy
read dob
echo "$firstName,$lastName,$phoneNumber,$dob" >> Birthdays.csv
echo If you would like to add another person press 1 or enter 2 to proceed
read a
done
INPUT=./Birthdays.csv
OLDIFS=$IFS
IFS=","
[ -f ${INPUT} ] && while read Name Surname Telephone DOB
do
birthMonth=${DOB:0:2}
birthDay=${DOB:3:2}
birthYear=${DOB:6:4}
currentDate=`date +%d/%m/%Y`
currentMonth=${currentDate:0:2}
currentDay=${currentDate:3:2}
currentYear=${currentDate:6:4}
if [[ "$currentMonth" -lt "$birthMonth" ]] || [[ "$currentMonth" -eq "$birthMonth" && "$currentDay" -lt "$$birthDay" ]]
then
let Age=currentYear-birthYear-1
else
let Age=currentYear-birthYear
fi
echo "Name : $Name"
echo "Surname : $Surname"
echo "Telephone : $Telephone"
echo "DOB : $DOB"
echo "Age : $Age"
echo "##########################################"
done < $INPUT
IFS=$OLDIFS
echo $DATE
exit 0;
[人排序](HTTP://linux.die .net/man/1/sort) – peteches
我理解如何排序,但我希望按文件中每個人的年齡對文件進行排序。所以我真正想知道的是,如何通過文件內的某個人對文件進行排序? –
@ChristianDiorHoward你幾乎會用'-k,--key = KEYDEF'(使用'-t,'作爲字段分隔符),但是在你選擇日期格式的dd/mm/yyyy時,它變得不平凡。 –