簡體   English   中英

在Python中執行復雜的bash腳本

[英]Execute complex bash script within Python

我有一個bash腳本,該腳本在.csv文件上運行,然后在bash腳本的輸出上運行python腳本。 我想將所有內容制作成一個腳本,但是bash腳本非常復雜,我找不到在Python中使用它的方法。

grep "$(grep -E "tcp|udp" results.csv | grep -E "Critical|High|Medium" | awk -F "\"*,\"*" '{print $8}')" results.csv | sort -t',' -k4,4 -k8,8 | awk -F "\"*,\"*" '{print $5,"port",$7"/"$6,$8}' | sed '/tcp\|udp/!d' | awk '!a[$0]++' | sed '/,port,\/,/d' > out

我既嘗試將其作為字符串,又作為帶有子進程的參數化命令進行了嘗試,但是似乎復雜的字符太多了,一切都無法正常工作。

有沒有一種更簡單的方法可以在Python中運行此命令?

PS:我知道關於同一主題有多個問題和答案,但是沒有一個對我有用。

您可以使用\\逸出所有的“雙引號”嗎,請嘗試一下並讓我們知道它是否有效:

os.system(" grep \"$(grep -E \"tcp|udp\" results.csv | grep -E \"Critical|High|Medium\" | awk -F \"\\\"*,\\\"*\" '{print $8}')\" results.csv | sort -t',' -k4,4 -k8,8 | awk -F \"\\\"*,\\\"*\" '{print $5,\"port\",$7\"/\"$6,$8}' | sed '/tcp\|udp/!d' | awk '!a[$0]++' | sed '/,port,\/,/d' > out ")

整個命令可以放在“ your_command_with \\”轉義\\“雙引號中。 祝你今天愉快

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM