从 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 替换(提取)所执行的操作。您还必须实施脚本中的任何其他内容,或直接调用程序。
我在 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 替换(提取)所执行的操作。您还必须实施脚本中的任何其他内容,或直接调用程序。