Vil*_*age 6 bash echo backslash
我有这样的代码,它处理CSV文件:
#!/bin/bash
while read line
do
variable=$(echo $line | awk -F, '{print $2}')
echo $variable
done < ./file.csv
Run Code Online (Sandbox Code Playgroud)
如果CSV文件包含any \,则在运行此命令时,输出文本不会显示\.
如何确保\不删除?
Zas*_*ash 15
这种行为的原因是read内置使用\转义字符.该-r标志禁用此行为.
所以,这应该工作:
while read -r line
variable=$(echo $line | awk -F, '{print $2}')
echo $variable
done < ./file.csv
Run Code Online (Sandbox Code Playgroud)
你还应该放置"..."像$(...)变量这样的东西,比如
variable="$(command)"
echo "$variable"
Run Code Online (Sandbox Code Playgroud)