新しい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文字以上のエントリ(ディレクトリ)と一致し、一致が失敗した場合はエントリ(ディレクトリ)の名前を印刷します。