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)