Recursive Grep And Delete อย่างไรครับ

[SIZE=4]วิธีการค้นหา String ในไฟล์ และทำการลบไฟล์ ที่มีข้อความที่ค้นหา[/SIZE]

[B]grep -lir ‘[COLOR=#ff0000]FIND_STRING[/COLOR]’ /[COLOR=#ff0000]DIRECTORY [/COLOR]| xargs rm -fv

หรือ [/B]

[B]find /[/B][B][COLOR=#ff0000]FIND_STRING[/COLOR][/B][B] -type f -exec grep -l ‘[COLOR=#ff0000]FIND_STRING[/COLOR]’ {} ; | xargs rm -fv[/B]

[HR][/HR]
[B]
[COLOR=#0000ff]ตัวอย่างการทำงาน ลบ Mail Queue ของ DA[/COLOR][/B]

[B]grep -lir ‘[COLOR=#ff0000]FIND_STRING[/COLOR]’ /[/B][COLOR=#ff0000][B]DIRECTORY [/B][/COLOR][B]| xargs rm -fv[/B]

และ
[B]
find /var/spool/exim/* -type f -exec grep -l ‘[COLOR=#ff0000]FIND_STRING[/COLOR]’ {} ; | xargs rm -fv[/B]

[HR][/HR]
อีก 1 วิธีการ

find /[COLOR=#ff0000][B]DIRECTORY[/B][/COLOR] -type f -exec grep -l ‘[B][COLOR=#ff0000]FIND_STRING[/COLOR][/B]’ {} ; | awk ‘{print "rm "$1}’ > grep_delete.sh

ขอบคุณครับ

:baa60776:

เติม v ไปอีกตัวหลัง rm -f ครับ (ติดกันเลยนะ)

นึกว่าต้อง awk print เอาเอง
ขอบคุณมากไอซ์

exim ลบไฟล์ตรงๆ จาก spool ได้เลยเหรอครับ จะทำให้ queue มันเพี้ยนหรือเปล่าครับ ปกติผมมักทำผ่าน exim -Mrm โดย search ก่อนส่ง mail id มาให้มันครับ

grep -rl ‘FIND_STRING’ /var/spool/exim/input/ | sed -e ‘s/^./([a-zA-Z0-9-])-[DH]$/\1/g’ | xargs exim -Mrm

แบบนี้น่าจะ clean กว่า?

มาจาก exim cheat sheet

[COLOR=#333333]ขอบคุณครับ[/COLOR]