1

私は、UNIX で任意のディレクトリを分析し、出力を表示するスクリプトに取り組んでいます: script.sh dir1 dir2 ... dirn

必要な出力: ディレクトリ xxx には yy ファイルと zz ディレクトリが含まれています

#!/bin/bash
echo 'Enter Dir names'
read dirs
for input_source in $dirs; do 
ls -ld|wc -l; 
echo
# here goes a problem I am trying to figure out how to get this value printed by echo
# together with dirs and files quantity

お知らせ下さい。

コードの進め方がわかりません。お知らせ下さい

4

2 に答える 2

3

注:ファイル/ディレクトリ名の改行を処理するように編集されました。

lsコマンドの出力を解析しない方がよいでしょう。

ファイルをカウントするには (ディレクトリなし):

find "$DIR" -maxdepth 1 -type f -exec echo -n . \; | wc -c

ディレクトリを数えるには:

find "$DIR" -maxdepth 1 -type d -exec echo -n . \; | wc -c

完全なスクリプト:

#!/bin/bash
echo 'Enter Dir names'
read dirs
for DIR in "$dirs"; do 
    numFiles=$(find "$DIR" -maxdepth 1 -type f -exec echo -n . \; | wc -c)
    numDirs=$(find "$DIR" -maxdepth 1 -type d -exec echo -n . \; | wc -c)
    echo "Directory $DIR contains $numFiles files and $numDirs directories"
done
于 2013-06-06T04:51:14.660 に答える
1

コードで次を使用します: @where ls -ld が書かれています

ディレクトリの取得

  ls -latr | sed -n '/^d/p' zdirlst | grep -v "\." 

ファイルの取得:

  ls -latr | sed -n '/^-/p' zdirlst | grep -v "\."

wc -l を追加して、カウントを取得し、必要に応じて表示します ...

お役に立てれば !!

于 2013-06-06T04:48:50.063 に答える