[英]How to enter a tab char on command line?
在交互式bash終端中,如何輸入制表符? 例如,如果我想使用sed將“_”替換為我想使用的標簽:
echo $string | sed 's/[_]/TAB/g'
其中TAB表示Tab鍵。 這不是交互式的shell腳本,當我按Tab鍵時,我沒有任何字符和錚錚聲。 我也試過\\t
但它只將t放在字符串而不是標簽中。
注意這是mac osx。
用Control + V取代它,然后用Tab取消通常的擴展行為。
由於這個問題被標記為“bash”...使用Bash shell的“ANSI-C引用”功能可能更可取。 它擴展了ANSI C樣式的轉義序列,例如\\t
和\\n
,並將結果作為單引號字符串返回。
echo $string | sed $'s/_/\t/g'
這不依賴於您的終端理解Control + V (字面插入下一個字符)鍵綁定 - 有些可能不會。 此外,因為所有“隱形”字符都可以按字面表示,所以您的解決方案可以在不丟失信息的情況下進行復制粘貼,並且如果您在腳本中使用此sed
調用,則其他人可能會更加明顯/持久最終閱讀。
另請注意,macOS的sed
版本是BSD版本。 GNU sed
會在替換模式中解釋像\\t
這樣的字符轉義就好了,你甚至不需要上面的解決方法。
您可以使用MacPorts安裝GNU sed,它應該可以作為gsed
,但Homebrew可能會取代您的系統的sed
具體取決於您如何安排$PATH
變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.