试分别用grep、sed和awk对某个脚本文件ifile(比如/etc/profile)进行如下 操作。 ①显示其中的所有注释行(以#开始的行,或#号前全是白空格开始的行)。 ②显示去除所有注释行后的内容。 ③显示所有的(去除注释行和空行)有效行。
时间: 2024-01-21 21:18:13 浏览: 48
使用grep查找注释行:
```shell
grep "^#\|^[[:space:]]*#" ifile
```
- "^#":以#开头的行
- "^[[:space:]]*#":以0个或多个空格后紧跟#开头的行
使用sed删除注释行:
```shell
sed '/^\s*#/d' ifile
```
- "/^\s*#/":匹配以0个或多个空格后紧跟#开头的行
- "d":删除匹配到的行
使用awk显示有效行:
```shell
awk 'NF && !/^#/ {print}' ifile
```
- "NF":表示整行的字段数大于0(即非空行)
- "!/^#/":表示不是以#开头的行
- "{print}":打印符合条件的行
相关问题
试分别用 grep 、 sed 和 awk 对某个脚本文件 ifile (比如/ etc / profile )进行如下 操作。 ①显示其中的所有注释行(以#开始的行,或#号前全是白空格开始的行)。②显示去除所有注释行后的内容。 ③显示所有的(去除注释行和空行)有效行。
1. 使用 grep 命令显示注释行:
```bash
grep '^ *\#' ifile # 匹配以零个或多个空格后跟井号的行
```
2. 使用 sed 命令去除注释行:
```bash
sed '/^\s*#/d' ifile # 匹配以零个或多个空格后跟井号的行并删除
```
3. 使用 awk 命令显示有效行:
```bash
awk 'NF && !/^\s*#/' ifile # 匹配非空行且不是以零个或多个空格跟井号开头的行
```
用grep命令对/ etc/shadow文件进行查询
对/etc/shadow文件进行查询,可以使用以下命令:
```
sudo grep <查询内容> /etc/shadow
```
其中,`<查询内容>`是你想要查询的内容,可以是用户名、密码等。需要使用sudo权限才能访问/etc/shadow文件。