如果我有一个包含ASCII控制字符的文件,例如
^A
(标题开始),我该如何在Linux中使用grep查找它?正如评论中所述,下面的方法解决了该问题:
grep $'\01' file
$'\xC'
或$'\f'
,例如,请参阅此类ASCII表以获取十六进制位置。 - vlzgrep -a '[:cntrl:]
与grep -a $'\00'
不匹配。例如,将printf "hell0\x0\nworld\n:-)\x0:-(\n"
输入管道中。 - Louis Maddox这可以通过启用-P
选项的Perl正则表达式在grep
中完成:
grep -P "\x01" file
旁注:您不需要死记硬背所有这些^something
符号
- for any ^#, obtain the 3-digit octal code of
ASCII byte ordinance value of "#" via mapping array
- do a 1/0 invert for the left most digit :
125 -> 025
077 -> 177
新值是您正在寻找的控制字节的八进制代码。这本质上就是其他人所描述的“反转第7位”。
grep $'\01' 文件名
- Cyrusgrep '[[:cntrl:]]'
?这并不清楚您是想查找一个特定的控制字符还是所有控制字符,如果找到它们,您想要输出什么。 - Ed Morton