2012-02-03 48 views
0

如何顯示類型的所有文件在主目錄中的個人目錄過濾文件
說:如何在目錄中的linux

  1. 不會與某些字母就像a開始,k
  2. 並以他們的名義第三個字母是不是一個數字,不信 (大寫或小寫)
+0

歡迎來到Stack Overflow。你試過什麼了?另請閱讀http://stackoverflow.com/questions/how-to-ask – 2012-02-03 10:47:24

回答

2

嘗試grep的正則表達式:

ls -1 | grep -ve "^a\|^k\|^..[0-9]\|^..\w" | cut -d . -f 2 

-v:否決匹配 -e:使用正則表達式

-1是確保你沒有在一行中的幾個文件。

正則表達式表示:

  1. ^a\|^k:在開始
  2. ^..[0-9]沒有ak:在第三位置處沒有數字(.爲一個位置通配符)
  3. ^..\w:無字(字符或_)在第三位。

它有點長,但我認爲它是一種潛入正則表達式的方式。有關正則表達式的更多詳細信息,請參閱here

cut命令查找分隔符.並打印它的第二部分(-f 2)。

+0

「第二部分」可能不是OP的擴展。 'Filenames.can.have.a.lot.of.dots.in.them.txt' – mvds 2012-02-03 17:01:08

+0

@mvds:在這種情況下,'sed'會是一個更好的解決方案..就像你做的那樣;) – ezdazuzena 2012-02-06 08:15:44

0

如果「類型」你的意思是擴展:

$ ls | egrep '^[^ak].[^a-zA-Z0-9]' | sed -e s/.*\\.// 

有用於[^a-zA-Z0-9]速記但是這一個是容易理解和適應。