【发布时间】:2021-02-16 03:27:55
【问题描述】:
我正在尝试计算一个十六进制值在文件中出现的次数。十六进制值设置在变量中。
使用文字字符串“x01”返回正确的计数:
grep -o $'\x01' ${fileName} | wc -l
如何使用变量代替 x01 ?
【问题讨论】:
我正在尝试计算一个十六进制值在文件中出现的次数。十六进制值设置在变量中。
使用文字字符串“x01”返回正确的计数:
grep -o $'\x01' ${fileName} | wc -l
如何使用变量代替 x01 ?
【问题讨论】:
借用Conversion hex string into ascii in bash command line
# single quote character in hex
$ a='\x27'
$ echo "a'b'c" | grep -o $(echo "$a" | xxd -r -p)
'
'
$ echo "a'b'c" | grep -o $(echo "$a" | xxd -r -p) | wc -l
2
# you can also use just the number, \x prefix is optional
$ echo "a'b'c" | grep -o $(echo '27' | xxd -r -p) | wc -l
2
# if PCRE is available
$ echo "a'b'c" | grep -oP "$a" | wc -l
2
# with ripgrep (https://github.com/BurntSushi/ripgrep)
$ echo "a'b'c" | rg -oc "$a"
2
【讨论】: