แอพ OS X ใด ๆ ที่ช่วยให้ง่ายต่อการค้นหาและแทนที่ในหลาย ๆ ไฟล์?


9

ฉันกำลังมองหาเครื่องมือ OS X ที่ให้ฉันค้นหาและแทนที่สตริงการค้นหาในหลายไฟล์ ข้อกำหนดดังต่อไปนี้:

  • ค้นหาและแทนที่
  • ค้นหาตามนิพจน์ทั่วไป
  • ค้นหาหลายไฟล์
  • ค้นหาในโครงสร้างไดเรกทอรีที่ซ้อนกัน
  • การแทนที่นิพจน์สามารถใช้ค่าจากการค้นหา (นิพจน์ปกติ)
  • เครื่องมือนี้มีส่วนต่อประสานผู้ใช้ที่ใช้งานง่าย
  • ฟรีโดยเฉพาะอย่างยิ่ง

ฉันรู้ว่าเครื่องมือแก้ไขข้อความบางอย่างเช่นBBEditมีฟังก์ชันนี้ แต่ฉันต้องการเครื่องมือที่มีน้ำหนักเบาซึ่งไม่ต้องการให้ฉันเปิดไฟล์เพื่อแก้ไขก่อน

หากไม่มีเครื่องมือใดที่จะตรงกับความต้องการเหล่านี้ฉันจะพิจารณาทางเลือกบรรทัดคำสั่งด้วย ฉันรู้ว่าperlและsedสนับสนุนบางอย่างเช่นนี้ - โซลูชันที่ฉันสามารถกำหนดเป็นนามแฝง Bash หรือฟังก์ชั่นจะได้รับการต้อนรับในกรณีนี้

คำตอบ:


9

ปกติฉันใช้TextMate :

กล่องโต้ตอบการค้นหาและแทนที่ข้อความ

TextMate (1) คือ / เป็นผลิตภัณฑ์ซื้อ แต่ปัจจุบัน TextMate 2 อยู่ภายใต้การพัฒนาของ openSource บน gitHub และใช้งานได้ฟรี


5

Sublime Textคือสิ่งที่ฉันใช้มันยอดเยี่ยมมาก!

ภาพหน้าจอของค้นหาและแทนที่

ข้อความประเสริฐ:

  • มีอิสระในการประเมิน (ไม่ จำกัด เวลา)
  • สามารถค้นหาและแทนที่
  • สามารถค้นหาตามนิพจน์ทั่วไป
  • สามารถค้นหาได้หลายไฟล์
  • สามารถค้นหาโครงสร้างไดเรกทอรีที่ซ้อนกัน
  • สามารถใช้ค่าจากการค้นหาในการแทนที่นิพจน์
  • มีส่วนต่อประสานผู้ใช้ที่ใช้งานง่าย

1
คุณช่วยอธิบายให้ชัดเจนมากขึ้นและอธิบายว่า SublimeText แก้ปัญหาที่อธิบายไว้ในคำถามได้อย่างไร
nohillside

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

3

คุณไม่ต้องเปิดไฟล์ด้วย BBEdit คุณเพียงแค่ชี้ไปที่โฟลเดอร์ มันเป็นเครื่องมือที่ทรงพลังมากซึ่งฉันมักใช้กับไฟล์ HTML จำนวนมาก


3

นอกเหนือจากการแก้ปัญหาอื่น ๆ โดยใช้โปรแกรมแก้ไขข้อความฉันได้พบFAR - Find and Replace เครื่องมือค้นหาและแทนที่หลายแพลตฟอร์ม ไม่ใช่คนที่สวยที่สุด แต่ดูเหมือนว่ามันเป็นสิ่งที่ฉันกำลังมองหา

http://findandreplace.sourceforge.net/


2

ฉันมักจะใช้สคริปต์ Ruby เช่นนี้

Dir["**/*.txt"].each { |f|
  IO.write(f, IO.read(f).gsub(/search/, "replace"))
}

หรือคุณสามารถใช้gets(nil)กับ-i:

ruby -i -e 'print gets(nil).gsub(/search/, "replace")' *.txt

หากคุณติดตั้ง Bash 4และเปิดใช้งาน globstar คุณสามารถใช้**ในเชลล์ได้เช่นกัน:

sed -i '' 's/search/replace/g' **/*.txt

1

ตรงsedนี้เขียนขึ้นและตรงกับความต้องการทั้งหมดของคุณยกเว้นเส้นโค้งการเรียนรู้ค่อนข้างสูงชัน

สำหรับเส้นโค้งการเรียนรู้ที่อ่อนโยนยิ่งขึ้นลองTextWranglerจาก BareBones มันใช้เอ็นจิ้นข้อความ BBEdit และฉันเชื่อว่ามีฟังก์ชั่นการค้นหาแบบเต็ม & แทนที่ของพี่ใหญ่


1
ฉันคุ้นเคยกับการเขียนโปรแกรมทุบตีบางและการเขียนสคริปต์ sedแต่ไม่เคยทำอะไรที่สูงกับ คุณสามารถให้ตัวอย่างสำหรับวิธีการใช้sedแทนที่ข้อความในชุดของไฟล์เช่นในrubyคำตอบ(ปัจจุบัน) ด้านบนหรือไม่
nwinkler

-1

ลองดูที่ App Search และแทนที่ของฉัน คุณสามารถใช้มันในหลาย ๆ ไฟล์หรือไดเรกทอรีปลอดภัยค้นหา / แทนที่สตริงและคุณสามารถใช้การแสดงออกปกติ


ทำงานอย่างไร - ทำไมจึงดีกว่าคำตอบอื่น ๆ - โปรดระบุลิงก์มากกว่า
user151019

1
สวัสดีและยินดีต้อนรับสู่ถามที่แตกต่าง! แม้ว่าเราจะไม่สนใจนักพัฒนาที่แนะนำผลิตภัณฑ์ของพวกเขาเมื่อพวกเขาแก้ปัญหาที่นำเสนอ แต่เราขอให้คุณระบุบริบทที่ชัดเจนว่าเหตุใดผลิตภัณฑ์ของคุณจึงเป็นคำตอบและวิธีแก้ไขปัญหา สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการที่แตกต่างกันถามและ StackExchange Q & A งานรูปแบบโปรดดูคำถามที่พบบ่อย
Ian C.

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