我似乎無法得到正確的語法: 我想grep來算,其與「0」開頭的行,幷包含在變量「短語」如何grep一個包含變量的模式?
我試過了一句:
cut -f1,5 file.txt|grep -c 0*${phrase}*
(切割正在進行,因爲它不是問題的一部分),但它不起作用。我究竟做錯了什麼?
我似乎無法得到正確的語法: 我想grep來算,其與「0」開頭的行,幷包含在變量「短語」如何grep一個包含變量的模式?
我試過了一句:
cut -f1,5 file.txt|grep -c 0*${phrase}*
(切割正在進行,因爲它不是問題的一部分),但它不起作用。我究竟做錯了什麼?
0*
是「零個或多個0
」,不一定在字符串的開始。
grep -c "^0.*${phrase}"
您可以使用.*
指示零個或多個字符。另外請記住,如果$phrase
具有正則表達式元字符,您將遇到可能遇到的問題。
非常感謝,它做到了! 爲什麼^ 0的意思是「從零開始」?不被用於否定? – shayelk
@shayelk'^'僅用於字符類內部的否定,即'[^ 0]'。否則,它是字符串/行開頭的錨點。 –
正確的調用是
... | grep -c "^0.*$phrase"
整個事情必須被引用,以防止某些字符的外殼解釋,如*
。 .*
匹配行的開始處的0和任何$phrase
匹配的0或更多任意字符。
'| | fgrep「$ {phrase}」 – bobah
@bobah忽略字符串開始時所需的0。 – chepner