Một chiếc sed hợp lý ở đâu?


11

Trên Yosemite. Sed là cũ: không hiểu \tví dụ. Tôi đã cài đặt coreutilsvà không thể tìm thấy bất kỳ sedliên kết với cùng.

lựa chọn của tôi là gì đây?


4
Nếu bạn chạy sed OS X stock với -Etùy chọn, nó sẽ chấp nhận \t. Xem re_formattrang người đàn ông để biết chi tiết.
nwellnhof

nên , nhưng nó không. echo -e 'foo\tbar' | sed -E 's/\t/blah/'sản lượng foo bartrên Mavericks 10.9.5.
Sẽ

Câu trả lời:


11

Bạn cần cài đặt gnu-sed, không chỉ là coreutils:

brew install gnu-sed

Sau đó, bạn phải thêm các dòng sau vào .bash_profile:

export PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH"
export MANPATH="/usr/local/opt/gnu-sed/libexec/gnuman:$MANPATH"

Sau đó, sedphiên bản của bạn phải là mới nhất:

$ sed --version
sed (GNU sed) 4.2.2
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Jay Fenlason, Tom Lord, Ken Pizzini,
and Paolo Bonzini.
GNU sed home page: <http://www.gnu.org/software/sed/>.
General help using GNU software: <http://www.gnu.org/gethelp/>.
E-mail bug reports to: <bug-sed@gnu.org>.
Be sure to include the word ``sed'' somewhere in the ``Subject:'' field.

1
Bạn không cần các PATHtuyên bố. Chỉ brew install gnu-sedvà nó sẽ có sẵn dưới dạnggsed
neu242

1
Các PATHbáo cáo cho phép bạn sử dụng lệnh sedthay vì gsed. Điều đó là không cần thiết, nhưng bạn sẽ không cần phải nhớ thêm thư gvào sedlệnh của bạn .
jherran

2
Chắc chắn rồi. Nhưng điều đó có thể can thiệp vào các chương trình dự kiến sedlà BSD sed. Tôi không biết nếu đó là một vấn đề, nhưng tôi hy vọng nó sẽ xảy ra. (nếu osx thì bsdism)
neu242

alias sed=gsedtrong một hồ sơ, có thể?
Kroltan

9

Câu hỏi của bạn được gắn thẻ homebrew, nhưng đối với những người đọc sử dụng MacPorts: Chạy sudo port install gsedđể lấy GNU sed (có sẵn với gsedlệnh, tương tự như gfindtrong findutilscổng).


5

Cài đặt fink . Bạn cũng sẽ cần XCode nếu bạn chưa có nó.

Sau đó cài đặt sed mới nhất (và rất nhiều thứ hữu ích khác) như thế này:

fink install sed


thx, tôi đã không biết về
fink

2
Fink đang trở nên khá cũ. Tôi muốn giới thiệu Homebrew thay thế.
neu242

2
@ neu242 "cũ" như thế nào? Unix đã 45 tuổi và chúng tôi vẫn sử dụng nó. Bản thân Fink là 6 năm, đủ lâu để các vấn đề được giải quyết. Các gói Fink (và MacPorts) được cập nhật thường xuyên.
paul

@paul Ồ, tôi chưa bao giờ gặp phải ai sử dụng Fink trong 10 năm qua. Thật tốt khi biết rằng nó vẫn có thể sử dụng được! :)
neu242
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.