![如何将双引号中的连字符与其他字符串一起打印](https://linux22.com/image/156437/%E5%A6%82%E4%BD%95%E5%B0%86%E5%8F%8C%E5%BC%95%E5%8F%B7%E4%B8%AD%E7%9A%84%E8%BF%9E%E5%AD%97%E7%AC%A6%E4%B8%8E%E5%85%B6%E4%BB%96%E5%AD%97%E7%AC%A6%E4%B8%B2%E4%B8%80%E8%B5%B7%E6%89%93%E5%8D%B0.png)
cat inv_summary_1.txt | while read -r aLine
do
F1=`echo "$aLine" | cut -d "," -f1`
F2=`echo "$aLine" | cut -d "," -f2`
echo " 0 RUN_ID STR [0] \"${F2}\" "
done
191245204696,REG-00000000001
我上面有一个文件 inv_summary_1.txt,分隔符为“,”,想要打印第二个字段以及预定义值
0 RUN_ID STR [0]
191245204696,REG-00000000001
我想出去
0 RUN_ID STR [0]“REG-00000000001”
但我得到的是
” RUN_ID STR [0] “REG-00000000001
双引号不正确,即使 echo 语句中的前 2 个字符也丢失。
请帮助,我相信“-”在 Unix shell 脚本中有一定的意义,请帮助
注意:我使用的是 Linux 4.1.12-94.3.9.el7uek.x86_64 #2 SMP Fri Jul 14 20:09:40 PDT 2017 x86_64 x86_64 x86_64 GNU/Linux
答案1
考虑使用专用工具而不是 shell 来解析文本;awk
是一种方式:
awk -F, '{print "0 RUN_ID STR [0] \""$2"\""}' < input
结果如下:
0 RUN_ID STR [0] "REG-00000000001"