Di bawah Mac OS 10.10.3, saya menginstal gnu-sed dengan mengetik:
brew install gnu-sed --default-names
Ketika saya mengetiknya lagi, saya mendapatkan pesan:
gnu-sed-4.2.2 sudah terpasang
Akan tetapi, bahkan setelah me-reboot sistem dan memulai ulang Terminal, saya masih tidak dapat menggunakan sed versi GNU. Sebagai contoh:
echo a | sed ’s_A_X_i’
mengembalikan: bendera buruk dalam perintah substitusi 'i'
Apa yang harus saya lakukan agar versi GNU berfungsi? Berikut adalah jalur dalam variabel $ PATH saya.
/Users/WN/-myUnix
/opt/local/bin
/opt/local/sbin
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
/Applications/calibre.app/Contents/MacOS
/opt/ImageMagick/bin
/usr/texbin
Saya minta maaf jika pertanyaan saya tampak jelas, tetapi saya belajar skrip shell sendiri dan belum begitu mengerti bagaimana program UNIX diinstal. Bantuan apa pun untuk menggunakan perintah yang sesuai dengan GNU (dalam hal ini sed, tetapi segera saya akan membutuhkan yang lain juga) di Mac saya tanpa menyebabkan kerusakan atau kekacauan yang tidak perlu akan sangat dihargai.
brew
menginstal GNUsed
? Apakah direktori itu ada di AndaPATH
? Apa yang Anda dapatkan jika Anda mengetiksed --version
? (BSDsed
akan mengeluh; GNUsed
akan melaporkan informasi versinya.) Sampai Anda memilikibrew
direktori di PATH sebelumnya/usr/bin
atau Anda belajar menggunakan nama path absolut ke GNUsed
, Anda tidak akan menjalankan GNUsed
. Berhati-hatilah dengan kutipan juga.’
adalah kutipan pemrosesan kata, tidak seperti'
.Jawaban:
Catatan (2019):
The
--with-default-names
opsi dihapus sejak Januari 2019 jadi sekarang bahwa pilihan tidak tersedia lagi.Saat menginstal, Homebrew menginstruksikan tentang cara menyesuaikan jalur, jika seseorang ingin menggunakan sed tanpa
g
awalan.Anda sudah menginstal gnu-sed tanpa
--with-default-names
opsi.--with-default-names
opsi itu menginstalsed
ke/usr/local/bin/
gsed
Jadi dalam kasus Anda, yang harus Anda lakukan adalah:
Perbarui jalur jika perlu ...
atau gunakan
gsed
seperti yang disarankan orang lain.sumber
Saat Anda menginstal versi GNU
sed
untuk Mac OS X menggunakan:Program yang Anda gunakan adalah
gsed
.Jadi contohnya:
Selain itu, untuk melengkapi penggunaan alat perintah GNU di Mac OS X, ada posting blog yang bagus di sini untuk mendapatkan alat dari linux:
Instal dan gunakan alat baris perintah GNU di Mac OS / OS X
sumber
Yang
sed
disertakan dengan OS X sudah masuk/usr/bin
.The
sed
bahwahomebrew
menginstal adalah di/usr/local/bin
.Jika Anda lebih suka menggunakan
homebrew
salah satunya, Anda memiliki dua opsi:Pilihan 1
Setiap kali Anda ingin menggunakan
homebrew
sed
, ketikatau, lebih disukai
pilihan 2
Lanjutkan
/usr/local/bin/
(yaitu sebelum)/usr/bin
di PATH Anda di profil login Anda, seperti inisumber
$ brew install gnu-sed
Dengan dua perintah ini, gnu-sed bekerja dengan baik
sumber
Jika Anda perlu menggunakan perintah gnu-sed dengan nama normalnya, Anda dapat menambahkan direktori "gnubin" ke PATH Anda dari bashrc Anda. Cukup gunakan perintah berikut di bash atau terminal Anda.
sumber
--with-default-names
tidak berfungsi untuk saya di Mac OS X 10.14.2 jadi saya membuat symlink bernamased
kegsed
lebih tinggi di$PATH
Saya juga membuat symlink bernama
sed.1
ke halamangsed.1
manual yang lebih tinggi$MANPATH
sehinggaman
akan mengakses halamangsed
manual alih-alih halamansed
manual defaultsumber
alias sed=gsed
.