จัดเรียงไฟล์ด้วย grep


4

ฉันมีไฟล์เอาต์พุตหลายร้อยไฟล์ซึ่งบางไฟล์มีข้อความแสดงข้อผิดพลาด ให้บอกว่าฉันต้องการใส่ไฟล์ทั้งหมดที่มีสตริง "ERROR_1" โดยอัตโนมัติใน "subfolder_1" และที่เหลือใน "subfolder_2" อันที่สอง สิ่งนี้น่าจะเป็นไปได้โดยการวาง grep สิ่งที่จะเป็นไวยากรณ์ที่มีประโยชน์?


สิ่งนี้อาจช่วยได้
50-3

คำตอบ:


5
for a in *;do grep -q ERROR_1 "$a" && mv "$a" subfolder_1 || mv "$a" subfolder_2;done

สิ่งนี้น่าจะใช้ได้


4

สคริปต์นี้จะย้ายไฟล์ไปไว้ในโฟลเดอร์ย่อย ปรับเปลี่ยนไวด์การ์ด*ตามต้องการ (เช่น*.log) - รหัสนี้จะค้นหาไฟล์ทั้งหมดในไดเรกทอรีปัจจุบัน

for f in *
do
    grep -f ERROR_1 "$f"
    if [ $? -eq 0 ]; then
       mv "$f" subfolder_1
    else
       mv "$f" subfolder_2
    fi
done
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.