เป็นไปได้หรือไม่ที่จะทำตามคำสั่ง (ทำงานซ้ำ ๆ )? เป็นหนึ่งจะติดตามไฟล์โดยใช้ tail -f?


10

ฉันมีสคริปต์ที่สร้างไฟล์ 'Detail.out' ฉันรู้ว่าสคริปต์จะเสร็จสมบูรณ์เมื่อใดก็ตามที่ไฟล์มีจำนวนบรรทัดที่แน่นอน (ประมาณ 21025) ดังนั้นฉันพบว่าตัวเองกำลังนั่งอยู่ที่พร้อมท์คำสั่งทำงาน:

[me@somewhere myDir]$ wc -l */Detail.out
  21025 A/Detail.out
  21025 B/Detail.out
  21025 C/Detail.out
  12995 D/Detail.out
  10652 E/Detail.out
   3481 F/Detail.out
  21027 G/Detail.out
  21025 H/Detail.out
  21025 I/Detail.out
  ...   ...

ฉันเคยtail -fดูไฟล์เฉพาะ แต่ฉันต้องการติดตามผลลัพธ์ของwc -l */Detail.outคำสั่งที่แสดงด้านบน เป็นไปได้ไหม ฉันกำลังใช้งานtcshใน Ubuntu 11.04 ถ้าเป็นเช่นนั้น

คำตอบ:


18

ลองใช้watchคำสั่งแม้ว่าฉันสงสัยว่าทุกคนจะเขียนเวอร์ชันของตัวเองในครั้งเดียวหรืออย่างอื่นก็ตาม (เวอร์ชั่นราคาถูกคือwhile :; do clear; "$@"; sleep 5; done)


0

ไม่แน่ใจว่าคุณรู้หรือไม่ แต่คุณสามารถเปลี่ยนเส้นทางผลลัพธ์ของโปรแกรมเป็นไฟล์ได้เช่นกัน ดูhttp://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.htmlดังนั้นวิธีอื่นอาจเป็นการเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์จากนั้นใช้หางบนไฟล์ดังที่คุณเคยทำ .

$ find . -name "Detail.out" | xargs wc -l >> detail-out-list.txt

และในเทอร์มินัลอื่นคุณสามารถเรียกใช้$ tail -f detail-out-list.txtตามที่คุณคุ้นเคย

ดังที่ Celeb ตั้งข้อสังเกตว่าปล่อยไฟล์ไว้รอบ ๆ ซึ่งอาจเป็นสิ่งที่คุณต้องการ (เพื่อตรวจสอบไฟล์นั้นเพิ่มเติมหรือมีประวัติบ้าง) หรือไม่และไม่มีสิ่งใดถูกดำเนินการเป็นระยะ ๆ เช่นเดียวwatchกับคุณ


นี่ไม่ได้ตอบคำถาม OPs เลยเพียงแค่ลงโทษการทำงานออกไปยังคำสั่งอื่นและต้องการเลเยอร์ใหม่ทั้งหมดของสิ่งที่ต้องรันและล้างข้อมูลหลังจากนั้น
Caleb

@Caleb: ฉันไม่ชัดเจนว่าทำไมนี่เป็นคำตอบที่แย่มาก ไฟล์เอาต์พุตอาจอยู่ใน / tmp ดังนั้นจึงไม่จำเป็นต้องล้างมัน ฉันไม่คิดว่าคำถามคือ "ฉันจะรันคำสั่งซ้ำได้อย่างไร" แต่ "ฉันจะทำตามคำสั่งที่รันซ้ำ ๆ ได้อย่างไร" เท่าที่ฉันเห็นมันดูเหมือนว่านี่จะเป็นการตอบคำถามของ OP ... โอเคสำหรับการอ่านอย่างระมัดระวังมากขึ้นฉันเดาว่าคำถามจะคลุมเครือเช่นเดียวกับที่โพสต์ในปัจจุบัน: ทำ "(เรียกใช้ซ้ำ ๆ )" หมายถึง " ) "หรือ" (กล่าวคือฉันจะเรียกใช้ซ้ำ ๆ ได้อย่างไร) "?
iconoclast
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.