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 $