用製表符替換所有換行符
注意:為簡便起見,這些命令使用 here-strings(<<<
) 和 ANSI C 引用的字串($'...'
) 。這兩個 shell 功能都適用於 bash
,ksh
和 zsh
。
# GNU Sed
$ sed ':a;$!{N;ba}; s/\n/\t/g' <<<$'line_1\nline_2\nline_3'
line_1 line_2 line_3
# BSD Sed equivalent (multi-line form)
sed <<<$'line_1\nline_2\nline_3' '
:a
$!{N;ba
}; s/\n/'$'\t''/g'
# BSD Sed equivalent (single-line form, via separate -e options)
sed -e ':a' -e '$!{N;ba' -e '}; s/\n/'$'\t''/g' <<<$'line 1\nline 2\nline 3'
BSD Sed 注意到:
-
請注意,需要使用實際換行符或單獨的
-e
選項終止標籤(:a
)和分支命令(ba
)。 -
由於替換字串中不支援控制字元轉義序列(如
\t
),因此 ANSI C 引用的選項卡文字將拼接到替換字串中。
(在正規表示式部分,BSD Sed 僅將\n
識別為轉義序列)。