我想从下图的文件中抓取第一行的内容:

其中^I是制表符(tab键)。
假设上述文件的文件名是temp。理所当然的我们会想到下面的命令:
~~~bash
cat temp | grep ^DIAL\t
~~~
执行该命令显示结果如下:

显然结果与我们预期的不相同,这是因为grep的正则表达式不能识别`\t`,为了正确地匹配`\t`,需要将`\t`写作`$'\t'`。利用下面地命令,就可以成功的达成我们地目标:
~~~bash
cat temp | grep ^DIAL$'\t'
~~~
执行结果如下:

* * * * *
此外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:]]
~~~
结果如下图:

- Linux
- bash常见的命令汇总
- 切换用户登陆到bash时的目录
- grep匹配tab
- gperftools的使用
- Hyper-V安装Linux
- ubuntu on windows 忘记密码怎么办
- 修改用户默认shell
- ubuntu 安装pip
- Arch Linux安装记录
- Hyper-V中安装Linux的一些问题
- ASR
- 数据集
- PCM音频文件
- One-Pass算法
- CHiME5环境配置中遇到的一些问题
- Python
- 命令行参数解析
- 三目运算符
- Numpy
- 练习1
- 练习2
- Others
- GNU make 的用法
- pandoc
- Git
- PowerShell
- 花括号的作用
- 一条命令在多行内输入
- Tex
- Latex基础知识
- tikz库
- CTex使用中的一些问题
- C++
- 标准库list
- 数据结构
- kdtree