我想搜索到目錄中的所有文件,像@「LBL_18989」 @「LBL_15459」字符串結尾由.M,@「LBL_14359」 ......Linux命令行的正則表達式
我的命令是:
find . type f -name \*.m | grep '@"LBL_[[0-9]"]+'
,但它不工作:(
我想搜索到目錄中的所有文件,像@「LBL_18989」 @「LBL_15459」字符串結尾由.M,@「LBL_14359」 ......Linux命令行的正則表達式
我的命令是:
find . type f -name \*.m | grep '@"LBL_[[0-9]"]+'
,但它不工作:(
你應該總是給你的論點。您的發現-name模式包含「*」,這意味着shell將努力擴大它作爲一個水珠它傳遞給前find。你也可以使用-regex來替代find到grep的輸出。
find . -type f -regex '@"LBL_[[:digit:]"]+'
基於jdi的評論,您可能會希望搜索給定正則表達式的這些文件的內容。如果是這樣,您可以使用以下內容:
find . type f -name '*.m' -exec grep -E '@"LBL_[[:digit:]"]+' /dev/null {} +
您的代碼爲我運行。但是,您在問題中陳述的正則表達式將與您的示例列表中的文件名相比更多。如果你正在查看你的文件名是否需要名稱驗證,這可能是一個問題,因爲有些驗證不應該。您的正則表達式模式
grep的 '@ 「LBL _ [[0-9]」] +'
也匹配的文件名,如
如果列表確實是representat香港專業教育學院我就改用
grep的「@‘LBL _ [0-9] +’」
和引號字符移動到加後,在模式的結尾。 你可以使用grep,也許這就是你的用例,但是如果你使用egrep或grep和-E開關,你可以使用[[:digit:]]類。 POSIX.2使用破折號字符在括號表達式中的範圍上皺眉。從POSIX規範:「範圍非常依賴於排序,而便攜式程序應該避免依賴它們。」
@ F.J。 - 編輯帖子以糾正與他的代碼錯誤導致混亂。 – jordanm
最初的find命令是:'find。鍵入f -name * .m | grep'@「LBL _ [[0-9]」] +''。它不會允許我更改帖子,因爲刪除「\」不是6個字符的更改。 – jordanm
您是否試圖使用該字符串模式或包含帶該模式的文本數據的文件來grep文件名? – jdi