如何遍歷一個字符串數組,並刪除它們的部分值? (BASH)遍歷字符串數組,並刪除它們在Bash中的部分值?
我有一個數組填充了保存爲字符串的網站列表,我想要抓住它們位於'.com.au'左側的部分並將它們保存到新數組中。字符串中還有一些項目不以'.com.au'結尾,我想完全忽略它們。
爲了使它有點更容易閱讀,我已經刪除的大部分代碼,只留在我認爲將是相關的問題:
#!/bin/bash
full_array(*); declare -p full_array
edited_array=()
for x in ${full_array[@]};
#If x ends with '.com.au'
#Remove '.com.au' from x
#Save output to edited_array
#Else
#Skip item
done
我將不得不使用正則表達式做這個?如果是這樣,有沒有人知道在線的任何好的教程,值得一試?
是你有使用bash做一個特別的原因嗎?你有沒有試過sed或awk? –
我被告知用bash寫它,所以我試圖堅持。 – Thorium
你想使用''$ {full_array [@]}「(引號很重要)來確保你處理文件/條目/等。正確地使用空格和shell元字符。你不需要regex(儘管你可以使用它們),你也可以使用[Shell Parameter Expansion](http://www.gnu.org/software/bash/manual/bashref.html#Shell-Parameter-Expansion)嘗試去除後綴並將剝離值與原始值進行比較。 –