すべてのファイルディレクトリを繰り返し、長さが5より大きいファイルをインポートします。

すべてのファイルディレクトリを繰り返し、長さが5より大きいファイルをインポートします。

新しいLinuxユーザーはここを見てください。すべてのディレクトリフォルダを通過して名前をエコーし​​、名前の全長を抽出した後、エコをトイレタワーに保存してコントロールにエコーするループを作成しています。

合計の長さが5未満の場合は印刷され、それ以外の場合は通過するように別の条件を追加するにはどうすればよいですか?

私は以下を試しました:

for i in *                 
    do
        if [ -d "$i" ]
            then
           if (echo n "$i" | wc -m < 5)
                then
                    wc
               fi
        fi
    done

以下を印刷してください。

zsh: no such file or directory: 5
zsh: no such file or directory: 5
zsh: no such file or directory: 5
zsh: no such file or directory: 5
...
...

特定の条件下でサブディレクトリファイルにアクセスできるように、親ディレクトリ内のファイルをどのようにインポートできますか?

for i in *
    do
        if [ -d "$i" ]
             if (( $( echo n "$i" | wc -m ) == 76 ))
             then
             find $i
        fi 
    done

親ディレクトリのファイルの印刷

ベストアンサー1

すべてのディレクトリで名前が5文字を超えないディレクトリを検索するには、コマンドを使用して実行できますfind。明示的なループは必要ありません。

find -type d \( -name '??????*' -o -print \)

説明する

  • -type d- ディレクトリエントリのみが考慮されます。
  • \( ... \)- これらを一つにまとめる
  • item1 -o item2-item失敗した場合item2
  • -name '??????*'- 6文字以上の名前と一致します。
  • -print- 現在のプロジェクト名を印刷します。

要約すると、まずディレクトリのみを一致させます。次の部分は6文字以上のエントリ(ディレクトリ)と一致し、一致が失敗した場合はエントリ(ディレクトリ)の名前を印刷します。

おすすめ記事