为什么我的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/