【发布时间】:2021-03-18 21:12:00
【问题描述】:
我有一个包含以下内容的文件。
[oracle@hostname POST_DB_REFRESH_VALIDATIONS]$ cat .DB_Creds.txt
DEW:SYSTEM:ss2021:NPDOR
STW:SYSTEM:ss2021:NPDOR
当我在 shell 中运行以下命令时,我得到的准确输出为 SYSTEM
[oracle@hostname POST_DB_REFRESH_VALIDATIONS]$ grep DEW .DB_Creds.txt | awk -F':' '{print $2}'
SYSTEM
而当我在 python3 命令行中使用 subprocess 运行相同的命令时,我得到的输出如下。
Python 3.6.8 (default, Sep 26 2019, 11:57:09)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import subprocess
>>> output = subprocess.check_output("grep DEW .DB_Creds.txt | awk '{print $2}'", shell=True)
>>> print(output)
b'SYSTEM\n'
我只希望它是 SYSTEM,而不是任何其他特殊字符。
【问题讨论】:
标签: python-3.x shell variables subprocess