我想加快我的腳本,目前大約需要30秒。我是bash的新手,我確信我正在使用一些不好的腳本練習(在https://unix.stackexchange.com/a/169765中發現了一些提示,但仍無法解決我的問題)。緩慢bash腳本使用grep和sed
我需要做的是從外部文件中獲取數據,並將數字提取到兩個數組中。我的腳本工作正常,但速度太慢。
readData=`cat $myfile`
# readData = [[1491476100000,60204],[1491476130000,59734],...,[1491476160000,60150]]
# I have approximately 5000 points (two numbers in each point)
pointTime=()
pointVal=()
for line in `echo $readData | grep -Po "[0-9]+,[0-9]+"`; do
# Get first number but drop last three zeroes (e.g. 1491476100)
pointTime+=(`echo $line | grep -Po "^[0-9]+" | sed "s/\(.*\)000$/\1/"`)
# Get second number, e.g. 60204
pointVal+=(`echo $line | grep -Po "[0-9]+$"`)
done
也許我可以在參數擴展中使用一些正則表達式,但我不知道如何。
如果你能告訴我們品嚐INPUT_FILE和預期的輸出,我們可以幫助更多的相同,則 – RavinderSingh13
你可以找到已經你問如上面的代碼中的註釋 –
你打算用數據做一旦你把它加載到數組中? Bash將成爲處理這些數據的絕佳選擇,這一點並不完全清楚。例如,請注意您的輸入文件是有效的JSON。大多數任何語言都可以通過簡單的方式將其加載到本地數據結構中,或者甚至可以直接在JavaScript中對其進行操作。 –