Tôi muốn thay thế TAB
s trong stdout
bằng dấu chấm phẩy, bằng cách chạy sed
từ vỏ ZSH.sed thay thế chữ TAB
Tôi hiểu người ta có thể bình thường (trong vỏ khác?) Sử dụng:
somecommand | sed 's/\t/;/g'
Tuy nhiên, điều này không làm việc cho tôi trong ZSH vỏ dưới FreeBSD. Số \t
không khớp với các trình lập bảng. Tại sao điều này? Tôi cũng đã thử nhiều dấu gạch chéo ngược (tối đa 5).
này không làm việc:
somecommand | sed 's/[TAB]/;/g'
, nơi [TAB]
là một TAB
ký tự là thực tế, chèn bằng cách nhập Ctrl-V
tiếp theo là nút TAB
trên bàn phím của tôi.
Cảm ơn, điều đó thực sự đã giải quyết mọi thứ đối với tôi! – poplitea
@poplitea Nếu tập lệnh của bạn chỉ chạy trong ksh93, bash hoặc zsh (trái ngược với các biến thể sh khác như pdksh, Bourne hoặc tro), thì bạn có thể sử dụng '$ 's/\ t /; /' g' trong đó shell làm mở rộng dấu gạch chéo ngược và 'sed' thấy ký tự tab theo nghĩa đen. – Gilles
@Gilles: Tuyệt vời! Tôi biết $(), nhưng không phải là $ '' thay thế. Cảm ơn bạn rất nhiều, điều này làm cho nó dễ dàng giải quyết vấn đề của tôi. Có lẽ bạn nên đặt câu trả lời này vào câu trả lời chứ không phải là bình luận, mặc dù (?). – poplitea