Bash weird variable whitespace missing
var=`cat tlds.csv|grep .ca,`
# echo "var=:$var:"
:ar=:.ca,Canada
Why is the v missing in the last line?
It should be
:var=:.ca,Canada
instead of
:ar=:.ca,Canada
I noticed a problem with the file with doing a "cat -v" on it.
Here's the issue, the file contains carat M ^M:
.vg,British Virgin Islands^M
.vi,United States Virgin Islands^M
.vn,Vietnam^M
.vu,Vanuatu^M
.wf,Wallis and Futuna^M
.ws,Samoa^M
.ye,Yemen^M
.yt,Mayotte^M
.yu,Yugoslavia^M
.za,South Africa^M
.zm,Zambia^M
I tried removing the carat M but only dos2unix could do it on the file:
Solution
dos2unix tlds.csv
bash, variable, whitespace, echoing, printingbash, var, tlds, csv, grep, ca, echo, quot, ar, contains, carat, vg, islands, vi, vn, vietnam, vu, vanuatu, wf, wallis, futuna, ws, samoa, yemen, yt, mayotte, yu, yugoslavia, za, zm, zambia, removing, dos, unix,