Chcę zastąpić TAB
s w stdout
średnikami, uruchamiając sed
z powłoki ZSH.sed wymienić literalne TAB
Rozumiem można normalnie (w innych skorup?) Użyć:
somecommand | sed 's/\t/;/g'
Jednak to nie działa na mnie w zsh-shell pod FreeBSD. The \t
nie pasuje do tabulatorów. Dlaczego to? Próbowałem również wielu ukośników odwrotnych (do 5).
to działa:
somecommand | sed 's/[TAB]/;/g'
, gdzie [TAB]
jest rzeczywisty TAB
dwuznakowego dodany przez wpisanie Ctrl-V
następnie przycisk TAB
na mojej klawiaturze.
Dzięki, to naprawdę wyjaśniło mi wszystko! – poplitea
@poplitea Jeśli twój skrypt działa tylko w ksh93, bash lub zsh (w przeciwieństwie do innych wariantów sh, takich jak pdksh, Bourne lub ash), możesz użyć '$ 's/\ t /; /' g' gdzie powłoka rozwija odwrotny ukośnik i 'sed' widzi literalną postać tabulatora. – Gilles
@Gilles: Fantastycznie! Wiedziałem o $(), ale nie o podstawianiu $. Dziękuję bardzo, to ułatwia rozwiązywanie mojego problemu. Powinieneś raczej umieścić to w odpowiedzi, a nie w komentarzu (?). – poplitea