l 线包装

使用 l 命令时换行的长度是实现定义的。

从标准:

长线应折叠,折叠点用 a 后写 a 表示; 折叠发生的长度未指定,但应适合输出设备。

GNU sed 提供了 -l 选项,用于指定使用 l 命令打印时分割长行的长度,默认为 70 个字符。

$ yes | head -c100 | tr '\n' ' ' | sed -n l | head -n1 | wc -c
      71
$ yes | head -c100 | tr '\n' ' ' | sed -nl50 l | head -n1 | wc -c
      51

BSD sed 按环境变量 COLUMNS 提供的数字分割长行,如果未提供 COLUMNS,则它在终端宽度处分割,如果未提供 COULMNS 且输出不是终端,则默认为 60 个字符。

$ yes | head -c100 | tr '\n' ' ' | sed -n l | head -n1 | wc -c
      61
$ yes | head -c100 | tr '\n' ' ' | COLUMNS=50 sed -n l | head -n1 | wc -c
      51
$ yes | head -c100 | tr '\n' ' ' | sed -n l | head -n1
y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y\
 y y y y y y y y y y $