Linux

如何顯示包含兩個字元且其中一個字元為 c 的文件名?

  • October 8, 2018

我試過做ls [a-z][a-z],但它似乎沒有工作。

使用 bash,設置 glob 設置,以便失去的匹配項不會觸發錯誤:

shopt -u failglob  # avoid failure report (and discarding the whole line).
shopt -s nullglob  # remove (erase) non-matching globs.
ls ?c c?

問號是代表單個字元的全域字元。由於您想要兩個字元的文件名,因此其中一個必須是 a c,因此它是第一個字元或最後一個字元。

shopt -s dotglob這樣還會顯示一個.c名為.

如果沒有匹配的文件,設置這些 shell 選項會導致所有參數被刪除,從而導致一個空的ls– 預設列出任何/所有內容。

改用這個:

shopt -s nullglob  ## drop any missing globs
set -- ?c c?       ## populate the $@ array with (any) matches
if [ $# -gt 0 ]    ## if there are some, list them
 ls -d "$@"
fi

引用自:https://unix.stackexchange.com/questions/473511