grep、sed、awk用法详解
时间: 2023-07-10 16:11:36 浏览: 131
1. grep
grep 的基本语法为:
```
grep [OPTION]... PATTERN [FILE]...
```
其中,`PATTERN` 是要搜索的字符串或正则表达式,`FILE` 是要搜索的文件名。如果不指定 `FILE`,则默认从标准输入读取数据。
常用的选项包括:
- `-i`:忽略大小写。
- `-v`:反向匹配,输出不包含 `PATTERN` 的行。
- `-n`:输出匹配行的行号。
- `-r`:递归搜索一个目录下的所有文件。
- `-E`:使用扩展正则表达式。
- `-w`:匹配整个单词,而不是子字符串。
例如,要在文件 `file.txt` 中搜索所有包含 `hello` 的行,可以使用:
```
grep hello file.txt
```
2. sed
sed 的基本语法为:
```
sed [OPTION]... {script-only-if-no-other-script} [input-file]...
```
其中,`script` 是要执行的编辑命令,支持多个命令以分号分隔。如果不指定 `input-file`,则默认从标准输入读取数据。
常用的命令包括:
- `s/PATTERN/REPLACEMENT/g`:替换文本中的 `PATTERN` 为 `REPLACEMENT`,`g` 表示全局替换。
- `d`:删除匹配行。
- `p`:输出匹配行。
- `n`:读入下一行,替换模式空间中的内容,并打印输出。
例如,要将文件 `file.txt` 中的所有 `hello` 替换为 `world`,可以使用:
```
sed 's/hello/world/g' file.txt
```
3. awk
awk 的基本语法为:
```
awk [OPTIONS] 'pattern {action}' file
```
其中,`pattern` 是要匹配的条件,`action` 是要执行的操作。如果不指定 `file`,则默认从标准输入读取数据。
常用的命令包括:
- `$0`:表示整个文本行。
- `$1`:表示第一个字段,以空格为分隔符。
- `-F`:指定字段分隔符。
- `BEGIN`:在处理文件之前执行的命令。
- `END`:在处理文件之后执行的命令。
例如,要在文件 `file.txt` 中输出第二列的内容,可以使用:
```
awk '{print $2}' file.txt
```
阅读全文