簡體   English   中英

ls 的正則表達式用法

[英]Regular Expression usage with ls

我正在嘗試將 ER (擴展正則表達式)ls例如ls .+\\..+

我正在嘗試打印包含擴展名的所有文件(我知道我可以使用ls *.* ,但我想嘗試使用 ER)。

當我運行該代碼時,我收到此錯誤: ls: .+..+: No such file or directory

您將正則表達式與shell globbing混淆了。 如果你想使用正則表達式來匹配文件名,你可以這樣做:

$ ls | egrep '.+\..+'

您沒有說明您使用的是什么 shell,但它們通常不支持正則表達式,盡管有常見的 *nix CLI 工具( grepsed等)可以支持。

像 bash 這樣的 shell 支持globbing ,它使用一些相似的字符(例如,*)但不是一回事。

較新版本的 bash 確實有一個正則表達式運算符, =~

for x in `ls`; do 
    if [[ $x =~ .+\..* ]]; then 
        echo $x; 
    fi; 
done

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM