ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
我想从下图的文件中抓取第一行的内容: ![源文件](https://box.kancloud.cn/9a4fb00c14948af8eba8ecaf0ef09ea4_1340x257.png) 其中^I是制表符(tab键)。 假设上述文件的文件名是temp。理所当然的我们会想到下面的命令: ~~~bash cat temp | grep ^DIAL\t ~~~ 执行该命令显示结果如下: ![错误的命令结果](https://box.kancloud.cn/6b0618927cab686963ffb35f2e6d6cca_1758x92.png) 显然结果与我们预期的不相同,这是因为grep的正则表达式不能识别`\t`,为了正确地匹配`\t`,需要将`\t`写作`$'\t'`。利用下面地命令,就可以成功的达成我们地目标: ~~~bash cat temp | grep ^DIAL$'\t' ~~~ 执行结果如下: ![正确的结果如下](https://box.kancloud.cn/0449fe3b4daa01a5d9f72eb39731a0c3_1705x85.png) * * * * * 此外grep还支持**POSIX字符类**,POSIX字符类在grep中地写法为[[:类名:]],具体地罗列如下 |类名|意义| |---|---| |alnum|文字数字字符| |alpha|文字字符| |digit|数字字符| |graph|非空字符(非空格、控制字符)| |lower|小写字符| |cntrl|控制字符| |print|非空字符(包括空格)| |punct|标点符号| |space|所有空白字符(新行,空格,制表符)| |upper|大写字符| |xdigit|十六进制数字(0-9,a-f,A-F)| 因此使用下面的命令也可以正确的完成目标: ~~~bash cat temp | grep ^DIAL[[:space:]] ~~~ 结果如下图: ![方法2](https://box.kancloud.cn/544d6b3f44eca09564f02afa26c165ff_1719x82.png)