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
|
||||
# Copyright (c) 2025 Julian Prein
|
||||
#
|
||||
# Remove ANSI SGR (Select Graphic Rendition) escape sequences, e.g. setting
|
||||
# color or bold font.
|
||||
|
||||
# TODO: Why is the range `[0-?]` invalid?
|
||||
s/\[[0-9:-?]*[ -/]*m//g
|
||||
env LC_ALL=C sed 's/\[[0-?]*[ -/]*m//g'
|
||||
|
||||
Reference in New Issue
Block a user