mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-04-20 18:56:39 +02:00
another example for tr -- illustrating problems with `-' in ranges..
This commit is contained in:
@@ -3640,14 +3640,14 @@ to remove all @samp{a}s, @samp{x}s, and @samp{M}s you would do this:
|
||||
tr -d axM
|
||||
@end example
|
||||
|
||||
However, when @samp{-} is one of those characters, it can be tricky
|
||||
because @samp{-} has special meanings.
|
||||
Performing the same task as above example but also
|
||||
However, when @samp{-} is one of those characters, it can be tricky because
|
||||
@samp{-} has special meanings. Performing the same task as above but also
|
||||
removing all @samp{-} characters, we might try @code{tr -d -axM}, but
|
||||
that would fail because @code{tr} would try to interpret @samp{-a} as
|
||||
a command-line option. Alternatively, we could try putting the hyphen
|
||||
inside the string, @code{tr -d a-xM}, but that wouldn't work either because
|
||||
it'd make @code{tr} remove all characters in the range @samp{a}@dots{}@samp{x}.
|
||||
it would make @code{tr} interpret @code{a-x} as the range of characters
|
||||
@samp{a}@dots{}@samp{x} rather than the three.
|
||||
One way to solve the problem is to put the hyphen at the end of the list
|
||||
of characters:
|
||||
|
||||
@@ -3656,7 +3656,7 @@ tr -d axM-
|
||||
@end example
|
||||
|
||||
More generally, use the character class notation @code{[=c=]}
|
||||
where you'd put @samp{-} (or any other character) in place of the @samp{c}:
|
||||
with @samp{-} (or any other character) in place of the @samp{c}:
|
||||
|
||||
@example
|
||||
tr -d '[=-=]axM'
|
||||
|
||||
Reference in New Issue
Block a user