-2
我試圖用sed從一個文件中處理文本,管結果到grep,但我有grep的循環之前獲取其輸出前循環,嘗試這種代碼的grep用於從sed的
sed 's/["."",""("")"]//g' file.txt | for i in ${array[@]}; do if grep -q -i "${array[$i]}"; then echo "${array[$i]}" fi
done
然而問題是,從sed的輸出不被輸送到sed的(通過for循環)
僅此工作得很好:
for i in ${array[@]}; do
sed 's/["."",""("")"]//g' file.txt | if grep -q -i "${array[$i]}"; then echo "${array[$i]}"
fi
做
但這裏的sed命令在循環中是多餘的。
我該如何讓它工作?
請張貼的輸入數據(file.txt的數組),你想從中獲得什麼以及什麼規則。 – Jotne
這裏有很多東西看起來不對:'[「。」「,」「(」「)」]'很奇怪。 '因爲我在$ {array [@]}'後跟'$ {array [$ i]}'是奇怪的;使用'grep'可以替換爲Bash模式匹配;使用'sed'可以替換爲Bash參數擴展。請遵循Jotne的建議並準確發佈您想要實現的內容(包括'file.txt'和'array'的內容)。 –
任何時候你在shell中編寫循環只是爲了操縱文本,你有錯誤的方法。發佈樣本輸入和期望的輸出,這樣我們就可以幫助你做任何你想做的事情。 –