使用grep命令将/etc/passwd,有出现 root 的行取出来,同时显示这些行在/etc/passwd的行号
时间: 2024-10-28 07:10:55 浏览: 136
Linux系统 grep命令用法详解.doc
5星 · 资源好评率100%
你可以使用`grep`命令结合`wc -l`和`sed`来实现这个需求。首先,使用`grep`查找包含"root"的行,然后通过`wc -l`获取行号,并利用`sed`展示原始文件中的行号。以下是相应的命令:
```bash
grep "root" /etc/passwd | sed 's/\(.*\)/\1\n\(.\{1,\}\)/' | awk '{OFS="\t"; print NR, $0}'
```
解释一下这个命令:
1. `grep "root" /etc/passwd`: 查找文件 `/etc/passwd` 中含有 "root" 的所有行。
2. `sed 's/\(.*\)/\1\n\(.\{1,\}\)/'`: 对grep的结果,每行添加一个换行符并在行首插入当前行号,`\{1,\}` 表示匹配一个或多个字符。
3. `awk '{OFS="\t"; print NR, $0}'`: 使用awk处理sed结果,设置输出字段分隔符(OFS)为制表符,并打印行号(NR)和完整的行内容($0)。
执行上述命令后,你会看到每行"root"及其所在的/etc/passwd中的行号。
阅读全文