0
我想比較從csv文件中讀取的字符串是否存在條件。下面是我寫的代碼示例:比較從csv文件讀取的字符串
export IFS="~"
while read a b c
do
echo "line Num:$a"
if [ "$b"=="sat" ];then
echo "Its saturday"
echo $c
elif [ "$b"=="sun" ];then
echo "Its sunday"
echo $c
else
echo "Its weekday"
echo $c
fi
done < "$1"
下面是CSV文件:
1~sat~enjoy
2~sun~enjoy
3~mon~work
4~tue~work
5~sun~enjoy
下面是我得到的輸出:需要以下輸出,而不是
line Num:1
Its saturday
enjoy
line Num:2
Its saturday
enjoy
line Num:3
Its saturday
enjoy
line Num:4
Its saturday
enjoy
line Num:5
Its saturday
enjoy
:
line Num:1
Its saturday
enjoy
line Num:2
Its sunday
enjoy
line Num:3
Its weekday
work
line Num:4
Its weekday
work
line Num:5
Its sunday
enjoy
任何想法如何t做到這一點?
感謝縮進代碼! –
你正在使用哪個外殼?擊? Bourne shell? –
帶\ r結尾的csv文件?嘗試使用'dos2unix'或'tr -d「\ r」'來轉換您的csv文件。也許你可以把'done <「$ 1」'改成'done <<(tr -d「\ r」<「$ 1」)''。 –