команды awk и echo в python - PullRequest
       1

команды awk и echo в python

0 голосов
/ 12 октября 2018

Мне нужно использовать echo и awk команды в скрипте Python.Вы можете мне помочь?

У меня есть скрипт bash, есть пример:

while read LINE
    do
        BOM1=`echo "$LINE" | awk -F $'\t' '{print $1}'`
        BOM2=`echo "$LINE" | awk -F $'\t' '{print $2}'`
done < file.txt

Я пытаюсь переписать то же самое в скрипте python:

import subprocess

with open(PT_tmp_bom_list,"r+") as Tmp_list_file:
    for line in Tmp_list_file:
        cmd="echo {} | awk -F '\t' '{print $1}'".format(line)
        subprocess.call(cmd, shell=True)

У меня есть несколько вопросов:

  1. Если строка является строкой.Я не могу вывести его, пробовал: cmd="echo {} ".format(line)

    он говорит, что: The system cannot find the file specified. Это значит, я не могу получить строку для awk.

    Строка должна выглядеть следующим образом:

    <deliverydir>/bom/bom_list.txt**TAB**<bom_list_dir>/bom_list.txt**TAB**Internal User

Второй вопрос: если я получу строку из echo, как мне использовать команду awk для этой строки?

1 Ответ

0 голосов
/ 12 октября 2018

Для этого вам определенно не нужны внешние программы;Python легко включает в себя функциональность Awk, а затем некоторые из них.

with open(PT_tmp_bom_list,"r+") as Tmp_list_file:
    for line in Tmp_list_file:
        bom1, bom2, _ = line.rstrip('\n').split('\t')

Уберите , _, если в строках ровно два поля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...