我正在創建一個腳本來分析一些文件並提供必要的信息。我該如何使用grep作爲貓
我在數組中設置了許多不同的變量,用於搜索文件中的不同方面。 例如日期,地點,類型。
但是我想讓每個變量都是可選的,這就是我遇到問題的地方。
命令的語法本來簡單 grep ${dates} filename | grep ${locations} | grep ${types}
但由於變量是可選的,上面不會有變量是否未設置工作。
我試圖找到一種方式來獲得grep來找到任何東西(即像egrep .* filename
) 這樣,我可以設置變量以適當的正則表達式,並有命令仍然可以運行。
不幸的是,當我設置變量等於''時,它凍結,當我將它設置爲'。'它只是從當前目錄中的每個文件中刪除所有內容,當我將變量留空時,它將文件名作爲變量並等待文件名。
有無論如何,我可以設置一個變量,使grep $variable file
輸出相同的貓會?
非常感謝提前!
你無需使用*擴展*正則表達式選項,只需'grep「$日期\ | $位置\ | $類型」文件名「是好的。(如果你需要擴展正則表達式,那麼當然,使用它,但如果沒有,基本的'grep'很好) –
OP描述使用shell管道'|',而不是邏輯*或* s。比較'seq 10 5 50 | grep -E'2 | 5'',(查找* 2 * OR * 5 *)到'seq 10 5 50 | grep'5'| grep'2',(查找* 2 *和* 5 *)。 – agc