如何将双引号中的连字符与其他字符串一起打印

如何将双引号中的连字符与其他字符串一起打印
 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"

相关内容