awk/bash引用:打印\在echo中
我们需要打印出来 targetID=“123” AssayID=“456” A.我们尝试:awk/bash引用:打印\在echo中,bash,shell,awk,quoting,Bash,Shell,Awk,Quoting,我们需要打印出来 targetID=“123” AssayID=“456” A.我们尝试: printf "awk -F"\""," 'BEGIN{FS=\",\";OFS=\",\";} {print \$1,\$2,\$3,\$4,\$5,\$6,\$7,\$8,\$9,\$10,\$11,\$20,\$12,\$13,\$14,\$15,\$16,\$17,\$18,\$19}' VrtAssay_${TargetIDs}_target_${AssayID}_assay_Detail2_a
printf "awk -F"\""," 'BEGIN{FS=\",\";OFS=\",\";} {print \$1,\$2,\$3,\$4,\$5,\$6,\$7,\$8,\$9,\$10,\$11,\$20,\$12,\$13,\$14,\$15,\$16,\$17,\$18,\$19}' VrtAssay_${TargetIDs}_target_${AssayID}_assay_Detail2_average.csv > VrtAssay_${TargetIDs}_target_${AssayID}_assay_Detail3.csv"
或回声
echo "awk -F"\"", 'BEGIN{FS=\",\";OFS=\",\";} {print \$1,\$2,\$3,\$4,\$5,\$6,\$7,\$8,\$9,\$10,\$11,\$20,\$12,\$13,\$14,\$15,\$16,\$17,\$18,\$19}' VrtAssay_${TargetIDs}_target_${AssayID}_assay_Detail2_average.csv > VrtAssay_${TargetIDs}_target_${AssayID}_assay_Detail3.csv"
两个give(\都不见了)
如果我们尝试
printf "awk -F\\", 'BEGIN{FS=\",\";OFS=\",\";} {print \$1,\$2,\$3,\$4,\$5,\$6,\$7,\$8,\$9,\$10,\$11,\$20,\$12,\$13,\$14,\$15,\$16,\$17,\$18,\$19}' VrtAssay_${TargetIDs}_target_${AssayID}_assay_Detail2_average.csv > VrtAssay_${TargetIDs}_target_${AssayID}_assay_Detail3.csv"
echo "awk -F\\", 'BEGIN{FS=\",\";OFS=\",\";} {print \$1,\$2,\$3,\$4,\$5,\$6,\$7,\$8,\$9,\$10,\$11,\$20,\$12,\$13,\$14,\$15,\$16,\$17,\$18,\$19}' VrtAssay_${TargetIDs}_target_${AssayID}_assay_Detail2_average.csv > VrtAssay_${TargetIDs}_target_${AssayID}_assay_Detail3.csv"
这些将给出一个错误消息
Unmatched ".
如果我们尝试
printf "awk -F\\", 'BEGIN{FS=\",\";OFS=\",\";} {print \$1,\$2,\$3,\$4,\$5,\$6,\$7,\$8,\$9,\$10,\$11,\$20,\$12,\$13,\$14,\$15,\$16,\$17,\$18,\$19}' VrtAssay_${TargetIDs}_target_${AssayID}_assay_Detail2_average.csv > VrtAssay_${TargetIDs}_target_${AssayID}_assay_Detail3.csv"
echo "awk -F\\", 'BEGIN{FS=\",\";OFS=\",\";} {print \$1,\$2,\$3,\$4,\$5,\$6,\$7,\$8,\$9,\$10,\$11,\$20,\$12,\$13,\$14,\$15,\$16,\$17,\$18,\$19}' VrtAssay_${TargetIDs}_target_${AssayID}_assay_Detail2_average.csv > VrtAssay_${TargetIDs}_target_${AssayID}_assay_Detail3.csv"
这给了我们
Unmatched ".
不知哪位大师能提供一些解决方案 试试看
echo 'awk -F\",'
如果我们将输入用单引号括起来,它将按原样打印。尝试一下
echo 'awk -F\",'
如果我们将输入括在单引号内,它将按原样打印。任何这些工作,您只需确保所有内容都已正确转义:
$ echo 'awk -F\",'
$ echo awk -F\\\",
$ echo "awk -F\\\","
shell的解析规则基本上是:
- 在
中,除单引号外的所有内容都按字面解释;要包含文字单引号,您需要关闭单引号,然后使用双引号来获得它“单引号”
- 在“双引号”中,双引号和反斜杠必须用反斜杠转义。因此,文字双引号是
,文字反斜杠是\”
,文字反斜杠和双引号是\\
。如果你只是写\\\”
,那是一个反斜杠,后面跟着一个结束引号\\”
- 任何这些工作,您只需确保所有内容都已正确转义:
$ echo 'awk -F\",'
$ echo awk -F\\\",
$ echo "awk -F\\\","
shell的解析规则基本上是:
- 在
中,除单引号外的所有内容都是按字面解释的;要包含字面意义上的单引号,需要关闭单引号,然后使用双引号来获得它'single quotes'
- 在
中,双引号和反斜杠必须用反斜杠转义。因此,文本双引号是“双引号”
,文本反斜杠是\“
,而文本反斜杠和双引号是\\
。如果您只写\\\”
,这是一个字面上的反斜杠,后跟一个结束引号\\”
echo 'awk -F\",'
使用单引号而不是双引号,例如:
echo 'awk -F\",'
在B尝试中,请注意反斜杠已消失,因为它用于转义下面的
“
@Henry您的实际问题是什么?为什么更改了问题?如果您有任何其他疑问,请尝试将其作为另一个问题问。在B尝试中,请注意反斜杠已消失,因为它用于转义下面的”
@Henry你真正的问题是什么?你为什么改变这个问题?如果您有任何其他疑问,请尝试将其作为另一个问题提问。您好,谢谢您的快速回复。但是,我稍微编辑了一下问题,echo“”可能会破坏以下变量${TargetIDs}和${AssayID}。是的,要展开变量,需要将它们括在双引号内。您好,感谢您的快速响应。但是,我稍微编辑了这个问题,echo“”可能会破坏以下变量${TargetIDs}和${AssayID}。是的,要展开变量,需要将它们括在双引号内。