从python程序中调用`sed`

时间:2015-03-30 06:06:14

标签: python json bash sed

我在bash中有以下代码片段,用于处理JSON文件。我想在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=\([^&]*\).*/\1/')\"" $file  > ts_parts/out_$name
        else
                jq ".url = null" $file > ts_parts/out_$name
        fi
        rm -f $file
done

1 个答案:

答案 0 :(得分:0)

您可以使用正则表达式:

import re

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

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

此代码仅执行sed替换(提取)的功能。您还需要执行的脚本中的任何其他内容,或直接调用程序。