i Python: размещение вывода Python в командах awk - PullRequest
1 голос
/ 10 апреля 2020

Я получаю следующее поведение в i Python, когда пытаюсь использовать переменные Python в командах оболочки.

Все работает нормально с большинством команд оболочки (например, cat, head и др. c.). Хотя я не могу заставить его работать с awk:

$ ipython
Python 3.7.4 (default, Aug 13 2019, 20:35:49)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.13.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: path = '/home/mux/'

In [2]: file = 'test.txt'

In [3]: !echo {path+file}
/home/mux/test.txt

In [4]: !cat {path+file}
Testing shell commands in iPython

In [5]: !awk '{print $1}' {path+file}
awk: fatal: cannot open file `{path+file}' for reading (No such file or directory)

In [6]: full_path = {path+file}

In [7]: full_path
Out[7]: {'/home/mux/test.txt'}

In [8]: !awk '{print $1}' full_path
awk: fatal: cannot open file `full_path' for reading (No such file or directory)

In [9]: !awk '{print $1}' /home/mux/test.txt
Testing

Может кто-нибудь объяснить различное поведение между awk и остальными командами оболочки?

Есть ли любой обходной путь, чтобы сделать эту работу?

...