【问题标题】:What do \b, \f, \n, \r do? What are the differences?\b、\f、\n、\r 是做什么的?有什么区别?
【发布时间】:2016-06-26 00:32:35
【问题描述】:

我想知道一些转义序列做了什么,包括以下内容:

\b backspace
\f form feed
\n new line
\r carriage return
\t tab

另外,换页、换行和回车有什么区别? \t 和空格有什么区别?它们看起来都一样...

【问题讨论】:

    标签: escaping


    【解决方案1】:

    您可以使用printf 测试这些转义序列,例如在 C 程序中或使用 Unix/Linux shell(如 Bash),如下所示。

    • Backspace 使光标在前一个字符上向后移动
    • 换页通常仅与打印机一起使用,以使当前页面被送出,以便下一页是当前页面
    • 换行(换行)使光标移动到下一行。在 Unix 相关系统上,这也会导致光标移动到该行的开头。
    • 回车 使光标移动到当前行的开头。在使用 Windows(或 MS-DOS)或其相关系统(尤其是其控制台)的系统上,回车和换行的组合用于换行。
    • 制表符 使光标移动到下一个制表位位置,该位置通常以四个或八个字符位置的间隔设置。它对于在列中排列数据很有用。但是请注意,printf 使用的字符串格式要可靠得多,因为使用制表符仍会导致列交错。请参阅此答案底部的示例。
    • 空格 将光标向前移动一个位置(与退格相反)。请注意,在终端(屏幕上)上,空间通常是破坏性的——也就是说,如果一个字符位于光标移动的位置,则该字符将被删除。当在另一个字符存在的位置打印一个新字符而不是空格时,也会发生同样的事情(如下面的退格示例所示)。

    $ 表示 shell 提示符,不应键入。包含它是为了区分您键入的内容和输出的内容。我在每个字符串的末尾添加了一个换行符\n,因此输出占据了自己的行。

    $ printf 'help\blo - backspace\n'
    hello - backspace
    $ printf 'two\nlines - newline\n'
    two
    lines - newline
    $ printf 'clocks - carriage return\rsla\n'
    slacks - carriage return
    $ printf 'Fruit\tColor\tQuantity\ngrapes\tgreen\t100\nbananas\tyellow\t50\n- tabs\n'
    Fruit   Color   Quantity
    grapes  green   100
    bananas yellow  50
    - tabs
    

    请查看ASCII Control Characters了解更多信息。

    试试这个,看看printf 格式如何改进标签:

    $ array=(A B C 'apple pie' 'banana split' 'cherry turnover' 100 200 300)
    $ for ((i=0; i<12; i+=3)); do printf '%s\t%s\t%s\n' "${array[@]:i:3}"; done
    A       B       C
    apple pie       banana split    cherry turnover
    100     200     300
    $ for ((i=0; i<12; i+=3)); do printf '%-16s%-16s%s\n' "${array[@]:i:3}"; done
    A               B               C
    apple pie       banana split    cherry turnover
    100             200             300
    

    如您所见,第二个版本中的列没有交错排列,总体上输出宽度相同。

    【讨论】:

      猜你喜欢
      • 2011-04-18
      • 1970-01-01
      • 2010-11-19
      • 2013-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-28
      • 2012-07-03
      相关资源
      最近更新 更多