bin:no-ansi-sgr: Set LC_ALL=C for [0-?] range
Setting LC_ALL=C makes it possible to use the range `[0-?]` instead of splitting it into `[0-9:-?]` as done previously. Without LC_ALL, sed complains with: sed: -e expression #1, char 21: Invalid range end The GNU manual explains this partially, although I still don't quite understand why this range specifically does not work in `en_US.utf8`. See: > Within a bracket expression, a *range expression* consists of two > characters separated by a hyphen. It matches any single character that > sorts between the two characters, inclusive. In the default C locale, > the sorting sequence is the native character order; for example, > `[a-d]` is equivalent to `[abcd]`. Link: https://www.gnu.org/software/sed/manual/sed.html#Character-Classes-and-Bracket-Expressions
This commit is contained in:
@@ -1,9 +1,8 @@
|
|||||||
#!/bin/sed -f
|
#!/bin/sh
|
||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
# Copyright (c) 2025 Julian Prein
|
# Copyright (c) 2025 Julian Prein
|
||||||
#
|
#
|
||||||
# Remove ANSI SGR (Select Graphic Rendition) escape sequences, e.g. setting
|
# Remove ANSI SGR (Select Graphic Rendition) escape sequences, e.g. setting
|
||||||
# color or bold font.
|
# color or bold font.
|
||||||
|
|
||||||
# TODO: Why is the range `[0-?]` invalid?
|
env LC_ALL=C sed 's/\[[0-?]*[ -/]*m//g'
|
||||||
s/\[[0-9:-?]*[ -/]*m//g
|
|
||||||
|
|||||||
Reference in New Issue
Block a user