List files with certain extensions with ls and grep

后端 未结 12 753
悲&欢浪女
悲&欢浪女 2020-12-02 04:09

I just want to get the files from the current dir and only output .mp4 .mp3 .exe files nothing else. So I thought I could just do this:

ls | grep \\.mp4$ | g         


        
12条回答
  •  情书的邮戳
    2020-12-02 04:37

    Use regular expressions with find:

    find . -iregex '.*\.\(mp3\|mp4\|exe\)' -printf '%f\n'
    

    If you're piping the filenames:

    find . -iregex '.*\.\(mp3\|mp4\|exe\)' -printf '%f\0' | xargs -0 dosomething
    

    This protects filenames that contain spaces or newlines.

    OS X find only supports alternation when the -E (enhanced) option is used.

    find -E . -regex '.*\.(mp3|mp4|exe)'
    

提交回复
热议问题