[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
sed 4.7 little behaviour change on regexp interval
From: |
Lorenzo Gaggini |
Subject: |
sed 4.7 little behaviour change on regexp interval |
Date: |
Thu, 3 Jan 2019 13:17:36 +0000 |
Hi,
I recently upgrade to sed version 4.7 from sed 4.5 (I'm on Archlinux)
and I noticed a litte behaviour change on regexp interval.
I have a script working correctly on sed 4.5 using this sed expression
regexp:
sed -e 's/[^a-Z-]//g'
On new sed 4.7 this sed expression gives me an error:
sed: -e expression #1, char 12: Invalid range end
The same regexp expression works correctly on grep 3.3.
Some tests:
$ cat sed_test
test
test11
Test12
test-test11
Test-Test12
$ grep --version | head -1
grep (GNU grep) 3.3
$ grep -e [^a-Z-] sed_test
test11
Test12
test-test11
Test-Test12
$ sed --version | head -1
sed (GNU sed) 4.5
$ sed -e 's/[^a-Z-]//g' sed_test
test
test
Test
test-test
Test-Test
$ sed --version | head -1
sed (GNU sed) 4.7
$ sed -e 's/[^a-Z-]//g' sed_test
sed: -e expression #1, char 12: Invalid range end
It's not a big problem and maybe the expression is not the clearest
for the purpose.
These expressions work both correctly also on sed 4.7:
$ sed -e 's/[^a-zA-Z-]//g' sed_test
test
test
Test
test-test
Test-Test
$ sed -e 's/[^[:alpha:]-]//g' sed_test
test
test
Test
test-test
Test-Test
Maybe I'm missing something obvious.
Best regards.
--
Lorenzo Gaggini
Register.it / Dada.eu
Gnu/Linux Sysadmin
Email: address@hidden
- sed 4.7 little behaviour change on regexp interval,
Lorenzo Gaggini <=