从 python 程序内部调用 `sed`

Calling `sed` from inside a python program

我在 bash 中有以下代码片段,我用它来处理 JSON file.I 想要在 python 中执行完全相同的功能。我可以从 python 调用 sed 吗?或者我如何实现同样的目标。

for file in /home/Work/ts_parts/*
do
        event=$(cat $file | jq '.Event')
        name="$(basename "$file")"
        if [[ "$event" =~ "aaa.bbb.ccc.dddd" ]]  || [[ "$event" =~ "eeee.ffff.gggg.hhhh" ]]; then
                echo "Coming Here"
                jq ".url = \"$(jq '.Msg' $file | sed 's/.*proxy=\([^&]*\).*//')\"" $file  > ts_parts/out_$name
        else
                jq ".url = null" $file > ts_parts/out_$name
        fi
        rm -f $file
done

您可以使用正则表达式:

import re

s = "abc proxy=123&456"                 # Test string

mat = re.search(r'proxy=([^&]*)', s)
print(mat.group(1))                     # 123

此代码仅执行您的 sed 替换(提取)所执行的操作。您还必须实施脚本中的任何其他内容,或直接调用程序。