Grep
是否可以忽略 ls 或文件萬用字元中的特定文件或目錄?
我在使用 ls 命令、文件萬用字元和 grep 命令時遇到問題。考慮以下文件/目錄樹。
abc/ def ghi.txt jkl def/ f01 abc abc.txt ghi.txt
假設如果我想完全忽略 abc/ 目錄並報告其他所有內容。嘗試
ls -lR -Iabc .
確實會報告 /def/abc.txt 文件,但會忽略該/def/abc
文件。同樣ls -lR . | grep -v abc
在這裡也沒有好處。有什麼方法可以在 bash 中做我想做的事嗎?或者,假設我想忽略
ghi.txt
但報告abc/ghi.txt
. 有沒有辦法在bash中做到這一點?
在 bash 中,如果啟用了擴展萬用字元,那麼您可以使用 !(abc) 來反向匹配
abc
目錄。前任。給定$ tree . ├── abc │ ├── def │ ├── ghi.txt │ └── jkl ├── def │ ├── abc │ ├── abc.txt │ └── f01 └── ghi.txt 2 directories, 7 files
和
$ shopt extglob extglob on
然後
$ ls !(abc) ghi.txt def: abc abc.txt f01