Bash
bash 腳本中帶有變數的 awk 模式
我在 bash 中遇到命令 awk 的問題,我想用變數查找模式,但它不起作用。你能告訴我這條線有什麼問題嗎?
awk -F" " "/$PWD/ {print $1,$3}" file.txt
由於您一直在使用雙引號,因此任何 -
$
變數在到達 awk 之前都會被 bash 擴展。這是第一個問題:{ print $1, $3 }
將擴展為{ print , }
.接下來,您嘗試使用的 awk 語法是
/<regular expression>/ { <action> }
:正則表達式不允許包含任何不帶引號的斜杠,但$PWD
肯定包含一些。這是第二個問題。你可以嘗試這樣的事情:
"/${PWD//\//\\/}/ { print \$1, \$3 }"
這要求 bash 將任何出現的
/
in$PWD
替換為\/
,並且還轉義了and 的$
符號,$1
以便$3
bash 使它們保持原樣。