为什么我的A结果有""并且只捕获了我的B很好的第一个单词?

文件:sample.txt

Amos Tan:Sunny Day:22.5:3:2
Jason Ong:Rainy Day:20.5:3:2
Bryan Sing:Cloudy Day:29.5:3:2

终端中的代码:
cat ./sample.txt | while read A B
do
    title=`echo “$A” | cut -f 1 -d ":"`
    echo "Found $title"
    author=`echo “$B” | cut -f 2 -d ":"`
    echo "Found $author
done

结果:
Found “Amos”
Found Sunny Day
Found “Jason”
Found Rainy Day
Found “Bryan”
Found Cloudy Day

最佳答案

这行是问题所在:

cat ./sample.txt | while read A B

它正在将第一个单词读入A中,并将其余行读入变量B中。

您可以更好地使用:
while read -r line
do
    title=$(echo "$line" | cut -f 1 -d ":")
    echo "Found title=$title"
    author=$(echo "$line" | cut -f 2 -d ":")
    echo "Found author=$author"
done < ./sample.txt

或者只是使用awk:
awk -F : '{printf "title=%s, author=%s\n", $1, $2}' sample.txt

关于linux - ubuntu bash打印结果在系统中带有额外的 “”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27820209/

10-16 11:03