Sed
用 sed ( 033[K) 添加 esc 序列
我想在每行的末尾添加一個轉義(tty 控制項)。
sed '/s/$/foo/g'
附加foo
到行尾。我想追esc[K
加到行尾(擦除到行尾)我試過了sed 's/$/\033[K/g' sed 's/$/\\033[K/g' sed 's/$/\e[K/g' sed 's/$/\\e[K/g'
都不產生轉義字元,只列印我輸入的內容。
如何在 sed 中獲得轉義字元?
嘗試轉義字元串
sed $'s/$/\033[K/g'
告訴 shell 處理在文字單引號字元串中的
$'…'
轉義更好的方法可能是僅在您寫入終端時才將清除附加到 EOL :
test -t 1 && el=$(tput el) … sed 's/$/'"$el/"
請注意,我在中途切換了引用樣式 - 這有助於將
$
保留作為文字,同時允許$el
擴展到其值(如果有)。我們也可以使用"s/\$/$el/"