2017-05-28 34 views

回答

0

OK - 如果必須使用grep:

ls -l | grep '^[^d]..[sx]' | awk '{ print $9 }' 
+0

謝謝你這是正確的。任何想法我做錯了什麼? – nikojov

+0

刪除'x'後面的星號。 – Jack

+0

爲了澄清,'x *'表示「零或多次出現x」。 – Jack

0

不要使用grep。如果您想知道文件是否可執行,請使用test -x。要檢查所有文件在當前目錄下,使用find或一個for循環:

for f in *; do test -f "$f" -a -x "$f" && echo "$f"; done 

find . -maxdepth 1 -type f -exec test -x {} \; -print 
+0

好吧,但我想找到的錯誤在我的grep命令,我確信我理解如何使用grep,並且仍然無法在這裏找到錯誤。 – nikojov

0

使用awkmatch

ls -l|awk 'match($1,/^...x/) {print $9}' 
  • match($1,/^...x/):匹配第一場正則表達式^...x,即搜索所有者許可結束於x
+0

這也會匹配目錄。建議使用'/^[^ d] .. X /'爲圖案 – Dave

1

您可以使用find-perm選項:

find . -maxdepth 1 -type f -perm -u+x 
+0

我的問題是如何使用做grep的 – nikojov

+0

https://edm00se.io/assets/images/post_images/right-tool-for-job- jekyll/scottySays.jpg – Jack

+0

或'find。 -maxdepth 1 -type f -executable' – Cyrus

相關問題