web-dev-qa-db-ja.com

lsとgrepを組み合わせてファイルのみをリストし、lsを使用してdirsをカウントする方法

Lsとgrepの組み合わせに問題があります。問題は、ホームディレクトリ内のすべてのファイルを一覧表示するにはlsとgrepのみを使用する必要があるということです。複数の組み合わせを試しましたが、効果はありませんでした。私はそれを次のように使用すべきだと思います:

ls /home/mydir | grep stomething

次の質問は、(これを行う方法がわからない)lsと別のコマンドを使用してメインフォルダーのdirsの数をカウントする方法ですか?

2
masterllama

Lsおよびgrepの使用法は正しいです。'stomething 'を含むls出力で結果を見つけます。ファイル名だけでなく、行全体を見ることに注意してください(ls -lなどの特定のフラグをlsで使用する場合に最も適切です)。

ディレクトリを見つけるには、findとwc(wordcount)を使用することをお勧めします。

find /home/mydir -maxdepth 1 -mindepth 1 -type d | wc -l

説明:

  • maxdepth 1、1のツリーの最大深さまでカウントします(たとえば、dirsのみで、この場合はサブディレクトリではありません)
  • mindepth 1、基本的にその例で、findが "。"を見つけないようにするために使用されます。また。
  • dを入力し、ディレクトリを探します(-type fはファイルを検索し、lはソフトリンクを検索します)
  • wc -l、返された行を数える

Wcへのパイプなしで実行すると、すべての結果のリストが表示されます。 Findは、よく知っている非常に便利なコマンドです。

5
drinxy