ยังไงต้องการจะแทนที่ตำแหน่งของไดเรกทอรีที่เก็องการตัวแยก(ช่องว่าง)

0

คำถาม

ฉันทำสองคน pipelines;เรื่องนี้ x="$(ls -1p | grep "/$" | tr -d "/")" ทั้งหมดเอารายการย่อยของไดเรกทอรีจากที่ทำงานไดเรกทอรีและนี่ y="$(ls -1p | grep "/$"| grep \ | tr -d "/")" ได้รับรายการย่อยของไดเรกทอรีที่มีช่องว่างในไดเรกทอรีทำงาน.

ดังนั้นตอนนี้สิ่งที่ฉันพยายามจะทำก็คือต้องการจะแทนที่ตำแหน่งของไดเรกทอรีที่มีช่องว่างและใส่มันในที่สุดด้านบน,ie., พูดด้านล่างนี้เป็นตัวแทนของผ 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

ถ้ามีใครสามารถช่วยออกไปนั่นจะเป็น greatly นเกียรติอย่างยิ่ง

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

ใช้ GNU ค้นหา:

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

นี่คือ recursive.

2021-11-24 01:57:20

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่