gpt4 book ai didi

python - 为每一行运行脚本并根据输出执行某些操作

转载 作者:太空宇宙 更新时间:2023-11-04 06:06:27 25 4
gpt4 key购买 nike

我有一个别人制作的 Python 脚本。在我的 bash 脚本中,我想对 txt 文件中的每一行执行它,并使用每一行作为参数。然后根据 python 脚本的输出,将该行添加到新的 txt 文件中。

此刻我运行

sudo python tester.py 10.0.1.1 999 user pass

其中“10.0.1.1 999 user pass”将是我的 txt 文件中的一行。

如果成功,它会输出“SUCCESS!”。这是我想将该行复制到新文件的地方。

现在,为了让它变得更复杂,我想根据行的开头更改 python 脚本。这不是 100% 需要的,但可以让我免去事先分割 txt 文件的麻烦。

例如。如果该行以“10”开头,则使用脚本 1。如果该行以“192”开头,则使用脚本 2。两者都有相同的“SUCCESS!”输出。

我已经尝试过了

cat list.txt | while read line
do
python tester.py $line
if $(...) == "S"*
then
$line >> good.txt
fi
done

但是有些不对劲。

希望这对有人能够帮助我有足够的意义。

克里斯

最佳答案

通过引用 $line,您可以将该行中的所有单词合并到一个参数中,但 Python 脚本需要 4 个单独的参数。

您应该将该行的第一个字段读入其自己的变量中,以便可以测试它来决定运行哪个脚本。

然后将脚本的输出分配给一个变量,针对 SUCESS! 进行测试,如果匹配则写入输出文件。

while read -r ip rest
do
case "$ip" in
10.*) script=tester.py ;;
192.*) script=tester2.py ;;
*) echo "IP $ip doesn't start with 10 or 192";
exit;;
esac
result=$(sudo python $script $ip $rest)
if [[ $result == SUCCESS* ]]
then
echo "$ip $rest"
fi
done < list.txt > good.txt

关于python - 为每一行运行脚本并根据输出执行某些操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53400779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com