這個問題在這里已經有了答案: unix 正則運算式中的星號(*)和點星號(.*) 1 個答案 17 小時前關閉。
我有一個名為 test.txt 的檔案,我想在 .js 中完成所有行
(檔案內容)
include/jquery.jshowoff.min.js
include/jjshowoff.min.js
include/jquery.min.js
include/stackoverflowexamplejquery.jshowoff.min.js
include/examplejquery.jshowoff.min.js
如果我執行
貓測驗.txt | grep ".*\ .js"
我收到正確的輸出,所有行都在 .js 中完成,但是,如果我執行
貓測驗.xt | grep "*\ .js"
我沒有收到輸出。
這是為什么?
非常感謝先進。
uj5u.com熱心網友回復:
正則運算式后的星號“*”告訴 grep 匹配正則運算式 0 次或更多次。正則運算式開頭的星號沒有特殊含義,因此將匹配星號
uj5u.com熱心網友回復:
grep“.. js”和grep“ .js”有什么區別?
第一個匹配任何內容,然后是點和字符,j然后s是任何內容。
另一個是無效的正則運算式 -*前面沒有匹配組。grep從*字面上看。它被決議為任何內容,后跟一個星號*,然后是一個點和字符j,s然后是任何內容。
這是為什么?
*.js文本檔案中沒有文字文本。添加例如anything*.jsanything以匹配它。
echo 'anything*.jsanything' | grep "*\.js"
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/407160.html
標籤:
