0

我有以下文件:

cat 123
# carriers mask for G1,G2 (96 - 168 kHz)
#       91, 4, {0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF} \
# carriers mask for G3 (96 - 288 kHz)
#       91, 4, {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF} \

并想检查数字括号中是否有正确的字符串

我写了以下表达式(检查每个 12 十六进制表达式是否有正确的语法)

sed -r -n '/^.*91, 4, {\(0x[0-9A-F],\)\{11\}0x[0-9A-F]}.*/p' 123
sed: bad regex '^.*91, 4, {\(0x[0-9A-F],\)\{11\}0x[0-9A-F]}.*': Invalid content of \{\}

我试着用其他方式表达

sed -rne '/^.*91, 4, {0x[0-9A-F],0x[0-9A-F],0x[0-9A-F],0x[0-9A-F],0x[0-9A-F],0x[0-9A-F],0x[0-9A-F],0x[0-9A-F],0x[0-9A-F],0x[0-9A-F],0x[0-9A-F],0x[0-9A-F]}.*/ {p}' 123
sed: bad regex '^.*91, 4, {0x[0-9A-F],0x[0-9A-F],0x[0-9A-F],0x[0-9A-F],0x[0-9A-F],0x[0-9A-F],0x[0-9A-F],0x[0-9A-F],0x[0-9A-F],0x[0-9A-F],0x[0-9A-F],0x[0-9A-F]}.*': Invalid content of \{\}

谁能指出我的错误在哪里?

先感谢您。

4

1 回答 1

1

应该没有-r选项,您只检查个位数。您可以尝试以下方法:

sed -n '/91, 4, {\(0x[0-9A-F][0-9A-F],\)\{11\}0x[0-9A-F][0-9A-F]}/p' file
于 2013-05-01T13:51:05.960 回答