ฉันต้องการสร้างโฟลเดอร์เริ่มจาก 00 ถึง 99 (00, 01, 02, 03, ฯลฯ .... )ในหลายร้อยแห่ง มีคำสั่งบรรทัดเดียวที่จะให้ฉันทำอย่างนั้น?
ฉันต้องการสร้างโฟลเดอร์เริ่มจาก 00 ถึง 99 (00, 01, 02, 03, ฯลฯ .... )ในหลายร้อยแห่ง มีคำสั่งบรรทัดเดียวที่จะให้ฉันทำอย่างนั้น?
คำตอบ:
คำตอบของ mulaz นั้นถูกต้อง แต่หลายคนพูดว่าseq
เป็น beacuse ชั่วร้ายเปลือกหอยส่วนใหญ่จะให้คุณทำสิ่งต่อไปนี้
mkdir {00..99}
อย่างไรก็ตามใน bash เวอร์ชันเก่าบางรุ่น0-9
คุณไม่ต้องทำ
mkdir 0{0..9} {10..99}
สิ่งนี้จะทำอย่างไร
for i in `seq -w 0 99`; do mkdir $i; done
ทำลูปสำหรับตัวเลข 0-99 และ "-w" ตั้งค่าความกว้างเท่ากัน (0 padding สำหรับ 0-9)
seq -w 0 99 | xargs mkdir
ก็จะทำงานเช่นกัน
mkdir $(seq -w 0 99)
คุณสามารถทิ้งวงและเพียงแค่ทำ หรือใช้ backticks แทน$()
แต่ฉันไม่สามารถใส่ backticks ลงในเพราะเซิร์ฟเวอร์ผิดซินแท็คซ์
mkdir `seq -w 0 99`
(ฉันไม่สามารถหลีกเลี่ยงพื้นที่พิเศษ) ดูที่นี่แต่ดูเหมือนว่าเคล็ดลับในการรวมช่องว่างในตัวคั่นไม่ทำงานที่นี่
ฉันรู้ว่ามันเก่า แต่คำแนะนำของฉันจะเป็น:
สำหรับฉันในseq -f %02g 0 99
; ทำ mkdir $ i; เสร็จแล้ว
-f% 02g ช่วยให้มั่นใจได้ว่าจะมีอักขระอย่างน้อยสองตัวเช่น 00 หรือ 99 และจะยังคงอนุญาตให้มีตัวเลข 3 ตัวที่เกิน 99 ตัวดังนั้นถ้าคุณมี 100 มันจะไม่กลายเป็น 001 มันจะเป็น 00-99 100 แทน 001- 100 เช่น -w ทำ