I have code like this, which processes a CSV file:
#!/bin/bash
while read line
do
variable=$(echo $line | awk -F, '{print $2}')
echo $variable
done < ./file.csv
If the CSV file contains any \
, when I run this command, the output text does not show the \
.
How can I ensure that \
is not deleted?
The reason for this behaviour is that the
read
builtin uses\
as escape character. The-r
flag disables this behaviour.So, this should work:
You should also place
"..."
around things like$(...)
and variables, likeThe man page for
bash
has this to say aboutread
: