2017-03-10 9 views
1
ls -alp $base/$currentDir | awk '{print $9}' | grep '/' | egrep -v '^t|^tz$|^html$|^\.' 

私はこのgrepを持っており、 "t" "tz"または "html"というフルネームのディレクトリの一致を無視しようとしています。 ^ html $は一致しませんが、^ htmlは一致しますが、^ tz $は一致しません - 何とか$が行末として認識されていないことを除いて、すべてがうまくいきます。 ^行頭としては問題ありません。grep - 行末の簡単な問題

私は本当に上記の答えを知りたいと思います。副次的に、特定のディレクトリ内のすべてのサブディレクトリのリストを取得する別の方法がありますか?

私はLSは-d見つかりましたが、それはディレクトリパラメータを取らない?: 罰金しかしunsucessful試行作品

ls -d */
/arch index.html 

abc> ls -d */
/arch index.html 
abc> ls -d ../../arizona/
../../arizona/
abc> ls -d ../../arizona 
../../arizona 
abc ls -d '../../arizona' 
../../arizona 
abc> ls -d '../../arizona'/
../../arizona/

これはレイアウト

abc> ls -alp ../../arizona | grep '/' 
drwxr-xr-x 7 roberto007 inetuser 4096 Jan 26 11:16 ./ 
drwxr-xr-x 205 roberto007 inetuser 28672 Mar 10 11:07 ../ 
drwxr-xr-x 3 roberto007 inetuser 4096 Jan 26 11:17 grand-canyon/ 
drwxr-xr-x 3 roberto007 inetuser 4096 Jan 26 11:16 havasu-falls/ 
drwxr-xr-x 2 roberto007 inetuser 28672 Feb 27 2014 html/ 
drwxr-xr-x 4 roberto007 inetuser 4096 Jan 26 11:17 sedona/ 
drwxr-xr-x 3 roberto007 inetuser 4096 Jan 26 11:16 superstitions/ 
ありながら、
+0

質問に 'ls -alp'の出力を含めてください。 [なぜ 'ls'の出力が不良であるのか](http://mywiki.wooledge.org/ParsingLs)も参照してください。 – codeforester

+0

'-p'オプションは、ディレクトリ名の最後に'/'を置きます。それがあなたのマッチが失敗する理由です。 – codeforester

+1

これはコードフォレストなので、ありがとう、ありがとう、/^t/$する必要があります – Roberto

答えて

1

これは動作するはずです:

cd $base/$currentDir 
printf '%s\n' */ | egrep -v '^t|^tz/$|^html/$' 

または

printf '%s\n' $base/$currentDir/*/ | egrep -v '^t|^tz/$|^html/$' 
  • */のみリストディレクトリ各ディレクトリ
  • egrepは、あなたが望むものを隠しディレクトリが展開されていないので、./をフィルタリングする必要もしませんした後
  • printf '%s\n'は改行を置きますby */