2016-04-26 10 views
1

メインディレクトリREPORT内にサブディレクトリがあります。 TESTTEST_LNKFAILFAIL_LNKPASSGOODGOOD_LNKのようなサブディレクトリがあります。選択したディレクトリ名を取得する方法

ここには、_LNKという名前のサブディレクトリが必要です。

例:

は、私が唯一のこれらのディレクトリTEST,FAIL,PASS,GOODを必要としています。

メインディレクトリ内のすべてのサブディレクトリを指定するコードがあります。

ls -lrt | egrep '^d' | awk '{print $9}

誰も上記のコマンドは変形して_LNKとサブディレクトリを得るために私を助けてくださいことはできますか?

+0

あなたのコマンドを最小限に変更して、以下を追加してください: '| grep -v "_LNK" ' –

+0

上記のコマンドを' ls -lrt | egrep '^ d' | awk '{print $ 9} | grep -v "_LNK" 'これは何も出力していません。私はサブディレクトリのリストが親ディレクトリ 'REPORT'に存在することを望んでいます。名前が' _LNK'で終わらないサブディレクトリ – teepu

+0

"_LNK"のないサブフォルダがありますか?元のコマンド(grep -vなし)の結果を投稿できますか? –

答えて

2

これはあなた

ls -lrt | grep -v '_LNK' 
+0

サブディレクトリのリストが親ディレクトリREPORT内に存在し、サブディレクトリの名前が '_LNK ' – teepu

2

lsが不要な出力を回避するため--hideパラメータを持って助けるべきです。以下のように使用します。

ls --hide='*_lnk' 
1

あなたのコマンドの代わりに、あなたは再帰的にすべてのサブディレクトリを検索しfindを使用して、あなたが欲しいものを選択するgrepを使用することができます。

ここ
find . -type d -exec echo {} \; | grep -v "_LNK" 

関連するオプション

  • -type d:あるタイプのディレクトリのファイルのみを選択し
  • -exec次のコマンド

"{}"を実行"\;"は、コマンドが終了する場所を見つける伝えながら、一致するファイルのプレースホルダです。


(コメントでトビースパイツによって提案された)別のオプションは、-nameオプションの'!'否定を使用して、検索ですべての作業を行うことです。

find . -type d '!' -name '*_LNK' 

また、それはそこに何の価値があります再帰のレベルを設定することを許可するmaxdepthオプションです。-maxdepth 1は、サブディレクトリ(1レベル)での検索のみを意味します。

関連する問題