簡體   English   中英

如何在命令行中輸入tab char?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM