[英]awk/bash quoting: print \ in echo
我們需要打印出來
targetID =“ 123”
AssayID =“ 456”,
awk -F\", 'BEGIN{FS=",";OFS=",";} {print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$13,$14,$15,$16,$17,$18,$19,$20,$12}' VrtAssay_123_target_456_assay_Detail2.csv > VrtAssay_123_target_456_assay_Detail2_reorder.csv
答:我們嘗試:
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"
B.或回聲
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"
都給(\\走了)
awk -F", 'BEGIN{FS=",";OFS=",";} {print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$13,$14,$15,$16,$17,$18,$19,$20,$12}' VrtAssay_123_target_456_assay_Detail2.csv > VrtAssay_123_target_456_assay_Detail2_reorder.csv
C.如果我們嘗試
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"
這些將給出錯誤消息
Unmatched ".
D.如果我們嘗試
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\\\","
Shell的解析規則基本上是:
'single quotes'
,除單引號外的所有內容均按字面意義進行解釋; 要包括文字單引號,您需要先關閉單引號,然后使用雙引號將其括起來。 "double quotes"
,雙引號和反斜杠必須以反斜杠轉義。 因此,文字雙引號是\\"
,文字反斜杠是\\\\
,文字反斜杠和雙引號是\\\\\\"
。 如果您只寫\\\\"
,那是一個文字反斜杠,后跟一個引號。 使用單引號而不是雙引號,例如:
echo 'awk -F\",'
試試看,
echo 'awk -F\",'
如果將輸入括在單引號中,它將按原樣打印。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.