कैसे स्थिति को बदलने के लिए की एक निर्देशिका युक्त रिक्त स्थान

0

सवाल

मैं दो पाइपलाइनों; इस, x="$(ls -1p | grep "/$" | tr -d "/")" सभी उप निर्देशिकाओं से काम निर्देशिका, और यह, y="$(ls -1p | grep "/$"| grep \ | tr -d "/")" के उप निर्देशिका में होते हैं कि रिक्त स्थान में काम कर निर्देशिका.

तो अब क्या मैं करने की कोशिश कर रहा है के लिए स्थिति को बदलने की निर्देशिका में शामिल है कि रिक्त स्थान है और डालता है, यह बहुत शीर्ष परहै, यानी., कहते हैं नीचे दिए गए हैं मेरे उप dirs:

Dir1
Dir2
Dir 3

अब Dir 3 चला जाता है के लिए शीर्ष:

Dir 3
Dir1
Dir1
for I in $x; do
    for X in $y; do
        if [[ $I == $X ]];then
            sed "/"$X"/d" "$I"
        fi
    done
    echo "$I"
done

ऊपर अपने पाश करने के लिए करते हैं कि काम है । यह प्रिंट सभी उप dirs होता है कि कोई रिक्त स्थान है, लेकिन इसे प्रिंट के रूप में:

Dir1
Dir2
sed: Dir: No such file or directory
Dir
sed: 3: No such file or directory
3

अगर किसी को भी मदद कर सकते हैं कि बहुत सराहना की जाएगी ।

bash
2021-11-24 00:05:11
2

सबसे अच्छा जवाब

0

यदि आप पसंद करते हैं for पाश करने के लिए find आदेश, कैसे के बारे में:

#!/bin/bash

# 1st loop to print the dirnames containing space character
for d in */; do                         # loops over subdirectories under current directory
    if [[ $d =~ [[:space:]] ]]; then    # if the dirname contains a space character
        echo "${d%/}"                   # then print the name removing the trailing slash
    fi
done

# 2nd loop to print the dirnames without space character
for d in */; do
    if [[ ! $d =~ [[:space:]] ]]; then  # if the dirname does not contain a space character
        echo "${d%/}"
    fi
done

आउटपुट के साथ प्रदान की जाती उदाहरण:

Dir 3
Dir1
Dir2
2021-11-24 01:45:53
0

का उपयोग कर जीएनयू मिल:

find . -mindepth 1 -type d -name '*[[:space:]]*'       # spaces
find . -mindepth 1 -type d -regex '.*/[^/[:space:]]+$' # no spaces

इस पुनरावर्ती है.

2021-11-24 01:57:20

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में