ฉันมีโฟลเดอร์ย่อย (A, B, C, D .. ) ในเซิร์ฟเวอร์ระยะไกลซึ่งมีไฟล์ประมาณ 100.gz รูปแบบการตั้งชื่อไฟล์นั้นเหมือน ND2_58_20151105173030_20151105173240_1234.log.gz โดยที่ฟิลด์ 3-rd และ 4-th หลังจาก _ คือเวลาเริ่มต้นและสิ้นสุด ตอนนี้ถ้าเวลาเริ่มต้น / เวลาสิ้นสุดอยู่ที่ 15 นาทีจากเวลาปัจจุบันฉันต้องการดึงไฟล์นั้นใคร ๆ แนะนำให้ฉันรู้วิธีการใช้เชลล์สคริปต์สำหรับดึงข้อมูลฉันใช้ rsync
ขอบคุณ Arn
awk ดีกว่า print $3,$4, $0 ดังนั้นเมื่อคุณแยกวิเคราะห์คุณจะมีชื่อเต็มในคอลัมน์ที่สอง คุณต้องการ $4 เช่นกันหากมันเริ่มต้นมานานและสิ้นสุดลงเพียงไม่กี่นาที
basename ) ในตัวแปรเช่น fnameกับ a=${fname#*_*_} คุณเลือก 20151105173030_20151105173240_1234.log.gz กับ b=${a%_*_*} คุณหดมันลงไป 20151105173030 กับ year=${b:0:4} คุณมี 2015 และอื่น ๆ ... แน่นอนคุณสามารถหาวิธีที่สะดวกสบายมากขึ้น ... การจัดการสตริงทุบตี