Score:0

ฉันจะพิมพ์ไฟล์ในไดเร็กทอรีที่มีดัชนีตัวเลขนำหน้าได้อย่างไร

ธง in

ฉันต้องการพิมพ์ไฟล์ทั้งหมดในไดเร็กทอรีที่มีหมายเลขกำกับ เพื่อให้แต่ละไฟล์มีหมายเลขนำหน้าดังนี้

  1. myfile.txt
  2. ไฟล์อื่น
  3. เป็นต้น

ฉันต้องการอ้างถึงไฟล์เหล่านี้ในภายหลัง เช่นนี้

ไดเรกทอรี mv 1 2 3

ฉันจะอ้างถึงไฟล์ตามลำดับตัวเลขได้อย่างไร

Score:0
ธง hr

คุณสามารถใส่ชื่อไฟล์ในอาร์เรย์ที่จัดทำดัชนีและใช้ดัชนีอาร์เรย์ เช่น

shopt -s nullglob
ไฟล์=( * )

สำหรับฉันใน ${!files[@]}; ทำ 
  พิมพ์f '%d. %s\n' $i "${files[i]}"
เสร็จแล้ว

เพื่ออ้างถึงไฟล์ผ่านดัชนี , ใช้ "${files[n]}", ที่ไหน ได้รับการประเมินเป็นนิพจน์ตัวเลข เช่น "${files[3]}" หรือ n=3; echo "${ไฟล์[n]}". โปรดทราบว่าดัชนีอาร์เรย์ใน bash เริ่มต้นจาก 0

in flag
ทำอะไร ! และ @ ทำในด้านบน?
hr flag
@PeterElbert `${files[@]}` ขยายเป็นรายการค่าอาร์เรย์ ในขณะที่ `${!files[@]}` ขยายไปยังรายการดัชนีของอาร์เรย์ (หรือคีย์ ในกรณีของอาร์เรย์ที่เชื่อมโยง) ดูส่วนย่อย 'Arrays' ภายใต้ส่วน 'PARAMETERS' ของ 'man bash'
in flag
ขอบคุณ. ฉันสามารถส่งหลายดัชนีไปยังรายการไฟล์นั้นได้หรือไม่ ฉันต้องการย้ายไฟล์จำนวนมากได้อย่างสะดวก เช่น ไดเร็กทอรี mv â${files[1, 2, 4:10, 22]}â หรือป้อน live shell ที่ฉันสามารถพิมพ์ â$ 1 2 4-10 directoryâ โดยไม่ต้องพิมพ์ âfilesâ
hr flag
@PeterElbert คุณต้องเขียนคำสั่งย้ายแบบกำหนดเอง (ฟังก์ชันเชลล์) ที่แมปอาร์กิวเมนต์ของมันกลับไปที่ชื่อไฟล์ฉันคิดว่า (ไม่มีทางที่เชลล์ - หรือ mv - จะรู้ว่า `1`, `2` และ `4- 10` ไม่ใช่ชื่อไฟล์)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา