簡體   English   中英

比較從csv文件讀取的字符串

[英]Comparing string read from csv file

我正在嘗試比較if條件下從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

任何想法如何實現這一目標?

嘗試

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"

不要使用"$foo"=="$bar"因為bash只會看到一個令牌。

你也可以嘗試

case "$b" in
sat) echo "It's saturday" ;;
sun) echo "It's sunday" ;;
*) echo "It's weekday" ;;
esac
echo $c

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM