主要内容
-
数据检索
-
数据排序
-
数据去重
-
重定向
1. 数据检索
常和管道协作的命令 – grep
grep:用于搜索模式参数指定的内容,并将匹配的行输出到屏幕或者重定向文件中,常和管道协作的命令 – grep。
还有egrep和fgrep两个命令。
egrep可以使用扩展的正则表达式
fgrep没有元字符与普通字符的区别
grep egrep用别名加了—color之后才好理解。
- grep命令
grep, egrep, fgrep - print lines matching a pattern
命令语法 grep [OPTIONS] PATTERN [FILE...] 命令选项 -r 递归 -v 反取 -i 忽略大小写 -n 显示行号 -c 计数 -w 匹配一个词 -l 只给出匹配的文件名 -L 列出不匹配的文件名 -o 只列出匹配的内容 -E 支持扩展的正则表达式 -q 在标准输出中不输出任何内容,即静默模式 PATTERN 匹配字符串 example 对文件夹的操作 grep -r "root" /etc 递归检索/etc下所有文件中包含root的文件 grep -l -r "root" /etc 列出包含 root字符串的文件名 grep -L -r "root" /etc 列出不包含root字符串的文件名 对文件的操作 grep "root" /etc/passwd 找出文件中包含字符串root的行 grep -v "root" /etc/passwd 找出文件中不包含字符串root的行 grep -n "root" /etc/passwd 找出文件中包含字符串root的行,并显示行号 grep -c "root" /etc/passwd 统计文件中包含字符串root的行数 grep -w "root" /etc/passwd 匹配的字符串必须是一个完整单词 而不是包含 grep -o "root" /etc/passwd 只显示匹配的内容 grep -q "root" /etc/passwd 只匹配不输出 可以使用$?来监测结果,一般脚本中使用较多 [root@www ~]# grep -q "root" /etc/passwd [root@www ~]# echo $? 0 [root@www ~]# grep -q "root1" /etc/passwd [root@www ~]# echo $?
- 管道: |
上一个命令的输出作为下一个命令的输入
cat /etc/passwd | head -2
2. 数据排序
- 常和管道协作的命令 - sort
sort - sort lines of text files
-n 按数字排序 -r 反序排序 -o 结果输出到文件 -t 分隔符 sort -n -t: -k3 /etc/passwd -k 关键字 (按照指定列来排序) example: ps -a -o comm,vsz,rss,pmem |sort -nr -k 3
3. 数据去重
常和管道协作的命令 - uniq
uniq - report or omit repeated lines
-c 每行出现的次数 -d 仅显示重复行 -u 仅显示不重复行 -i 忽略大小写 -f N 跳过前面N个部分 (空格分开) -s N 跳过前面N个字符 (一般字符)
4. 重定向
> 重定向输入
>> 重定向追加
< 重定向输出
<< 重定向追加输出
linux中使用 0 代表标准输入 stdin 1 代表标准输出 stdout 2 代表标准错误输出 stderr 把输入输出和重定向混合使用。 2>把标准错误流重定向到文件中。 2>&1或>&把标准错误流与标准输出流结合在一起。 2>>是什么情况? 2>&1的意思是,“把标准错误传送到标准输出要去的任何位置”。