sed 显示不可见字符 l

仅凭肉眼能看到的空隙,你能判断单词与单词之间的空隙使用 空格 分隔还是使用 制表符 分隔嘛?

大多数情况下是不能的。

为了能够作出比较明确的判断,sed 添加了 l 命令用于把 隐藏字符 显示出来。

例如把 制表符 显示为 \t,把换行符显示为 $

l 命令是 list 的缩写,后者的意思是 列出

l 命令的语法格式如下

[address1[,address2]]l [len]
  • address1address2 用于 行寻址,可以是 行号 或者 模式

  • l 是显示命令

  • [len] 是可选的,如果设定,则用于限制每行的字符数。

范例1

开始范例前,我们先准备下我们接下来要使用的数据,我们使用 echo 来准备数据

[www.twle.cn] echo -e "Hello\tWorld\tYufei\nHello\twww.twle.cn\tsed"

运行结果如下

Hello   World   Yufei
Hello   www.twle.cn sed

下面的命令,我们使用 行号寻址 对第二行显示隐藏字符。

[www.twle.cn]$ echo -e "Hello\tWorld\tYufei\nHello\twww.twle.cn\tsed" | sed -n '2 l'

运行结果如下

Hello\twww.twle.cn\tsed$

范例 2

l 模式同样支持模式寻址,下面的命令当行包含 twle 时才运行 l 命令

[www.twle.cn] echo -e "Hello\tWorld\tYufei\nHello\twww.twle.cn\tsed" | sed -n '/twle/ l'

运行结果如下

Hello\twww.twle.cn\tsed$

范例 3

[len] 参数用于限定输出时每行的字符数,如果行的内容多于 [len] ,则会在当前行尾添加 \ 并且多出的内容会在新行输出。

也就是限定每行的字符不能多于 [len]

[www.twle.cn]$ echo -e "Hello\tWorld\tYufei\nHello\twww.twle.cn\tsed" | sed -n 'l 10'

运行结果如下

Hello\tWo\
rld\tYufe\
i$
Hello\tww\
w.twle.cn\
\tsed$

范例 4

如果我们将 [len] 设置为 0,那么 l 命令永远不会换行,除非遇到新的换行符。

[www.twle.cn]$ echo -e "Hello\tWorld\tYufei\nHello\twww.twle.cn\tsed" | sed -n 'l 0'

运行结果如下

Hello\tWorld\tYufei$
Hello\twww.twle.cn\tsed$
关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.