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 $