วิธีการติดตั้ง GNU-sed


1

ฉันพยายามติดตั้ง GNU sed ดังต่อไปนี้ โพสต์นี้ ฉันทำ

brew install gnu-sed

นิรนัยมันไปได้ดี แต่แล้วคำสั่ง gsed ไม่พบ ฉันไม่พบสิ่งใด gnu-sed (หรือเทียบเท่า) ใน /usr/local/bin/ ยกเว้นมาตรฐาน sed.

ฉันใช้ Mac OS X 10.11.3


ลองใช้ดู find ไปยัง หา มัน. ในเทอร์มินัลใช้คำสั่งต่อไปนี้: find /usr -type f -name *sed
user3439894

ค้นหาด้วยวิธีนี้และเลือกผู้ที่มีคำว่า gnu, ฉันพบ /usr/local/Cellar/gnu-sed/4.2.2/bin/sed. ฉันควรจะย้ายไฟล์นี้ไปที่ /usr/local/bin/? ขอบคุณ
Remi.b

เวอร์ชัน OS X BSD ควรเป็น /usr/bin/sedดังนั้นฉันจึงไม่เห็นเหตุผลว่าทำไมคุณไม่สามารถคัดลอก / ย้ายรุ่น GNU ไป /usr/local/bin/. ที่กล่าวว่าขึ้นอยู่กับว่าคุณอยู่ใน PATH อันดับแรกคืออันที่จะวิ่งถ้าคุณไม่ทำอะไรเพื่อแยกความแตกต่างทั้งสอง อาจเรียกรุ่น GNU gsed.
user3439894

ฉันแค่ต้องเปลี่ยนชื่อไฟล์ sed ไปยัง gsed เปลี่ยนชื่อคำสั่งได้อย่างไร
Remi.b

ชื่อไฟล์และชื่อคำสั่งนั้นเหมือนกันดังนั้นคุณสามารถเปลี่ยนชื่อไฟล์ได้หรือไม่นั้นขึ้นอยู่กับคุณ คุณสามารถทิ้งไฟล์ไว้ที่ตำแหน่งนั้นและสร้าง symlink ให้ตั้งชื่อตามที่คุณต้องการ ถ้าคุณปล่อยให้ทั้งชื่อ sed และทั้งคู่อยู่ใน PATHจากนั้นหนึ่งจะทำงานมากกว่าอื่น ๆ ขึ้นอยู่กับ PATH. หากคุณไม่เข้าใจสิ่งที่ฉันกำลังพูดคุณต้องทำ Googling
user3439894

คำตอบ:


4

ก็จะปรากฏว่า brew กระบวนการเชื่อมโยงไม่สำเร็จลิงก์จาก Cellar ไปยัง /usr/local/bin.

ก่อนอื่นมาตรวจสอบก่อนว่าติดตั้งแล้ว ลอง brew list และคุณจะได้รับรายการสูตรที่ติดตั้ง ถ้า gnu-sed อยู่ในนั้นติดตั้งแล้วก็โอเค หากไม่เป็นเช่นนั้นให้เรียกใช้ brew install gnu-sed อีกครั้งและคุณควรจะโอเค

หากอยู่ในรายการให้ลองเชื่อมโยงและดูว่าคุณได้รับผลลัพธ์ใด brew link gnu-sed จะทำเช่นนี้ ควรเชื่อมโยงเป็นไรและคุณจะถูกปิดและใช้งาน


ขอบคุณ ฉันทำตามที่คุณพูด ฉันยังยกเลิกการเชื่อมโยง gnu-sed อีกครั้ง ( brew unlink gnu-sed && brew link gnu-sed ) และได้รับ Unlinking /usr/local/Cellar/gnu-sed/4.2.2... 3 symlinks removed;Linking /usr/local/Cellar/gnu-sed/4.2.2... 3 symlinks created. อย่างไรก็ตามคำสั่ง gnu-sed และ gsed ยังไม่พบและฉันไม่คิด sed คำสั่งถูกแทนที่
Remi.b

คุณแน่ใจนะว่า /usr/local/bin อยู่ในของคุณ PATH?
Tony Williams

เมื่อฉันทำ echo $PATH ฉันเข้าใจ /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin ซึ่งดูเหมือนจะไม่ดีงาม คำสั่ง bash อื่น ๆ ทั้งหมดนั้นทำงานได้ดี
Remi.b

ตกลงเส้นทางของคุณตกลง มี / usr / local / bin / gsed หรือไม่ จะเกิดอะไรขึ้นถ้าคุณ cd /usr/local/bin แล้ว ln ../Cellar/gnu-sed/4.2.2/bin/gsed /usr/local/bin/gsed ?
Tony Williams

/usr/local/bin/gsed ไม่ได้อยู่. ฉันมี /usr/local/bin/sed. /usr/local/Cellar/gnu-sed/4.2.2/bin/gsed ไม่มีอยู่อย่างใดอย่างหนึ่ง ของคุณ ln คำสั่งจึงส่งกลับ No such file or directory. ขอบคุณที่ติดตามปัญหาของฉัน :)
Remi.b
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.