【发布时间】:2017-12-04 09:13:10
【问题描述】:
我正在尝试在 python 中运行以下 awk 命令,但出现与引号相关的语法错误:
import subprocess
COMMAND = "df /dev/sda1 | awk /'NR==2 {sub("%","",$5); if ($5 >= 80) {printf "Warning! Space usage is %d%%", $5}}"
subprocess.call(COMMAND, shell=True)
我试图转义引号,但仍然遇到同样的错误。
【问题讨论】:
-
正确的转义应该是这样的:
COMMAND = "df /dev/sda1 | awk 'NR==2 {sub(\"%\",\"\",$5); if ($5 >= 80) {printf \"Warning! Space usage is %d%%\", $5}}'" -
你有一个未封闭的报价。我建议您在实际使用 python 之前在终端中运行它。
-
在
COMMAND字符串上使用三引号。但是你为什么要这样做呢?只需使用 awk,或仅使用 Python。两者都用有什么意义?