一 文本处理工具
1文件查看
cat读取和查看文件
nl查看文件并列出行号
tac倒序查看文件
hexdump查看二进制文件
more分页查看文件
head显示文本前几行,默认前10行
tailf显示文本后几行,默认后10行
2按列抽取文本
cut-d 指明分隔符,默认tab
cut-f 指明列
3合并文件
paste 合并两个文件同行号的列到同一行
paste-d 指明分隔符,默认tab
paste-s 所有行合为一行
4文本分析
wc-l 统计行数
wc-w 统计词数
wc-c 统计字节数
wc-m 统计字符数
wc-L 显示文件中最长行
5文本排序
sort -r倒序排序
sort -n按大小排序
sort -u 删除排序的重复行
uniq删除相邻重复行
uniq -c 显示每行重复出现次数
二 文本处理三剑客之grep
grep默认对匹配文件着色显示
grep -v 匹配不包括的行
grep -i 忽略大小写
grep -c 统计匹配行数
grep -o 仅显示匹配的子符串
三 正则表达式
. : 匹配任意单个字符
[ ] :匹配指定范围内的任意单个字符
[^] :匹配指定范围外的任意单个字符
[:alnum:]:字母和数字
[:alpha:]:代表任何英文大小写字符
[:blank:]:空白字符
*: 匹配前面的字符任意次,包括0次
.* 任意长度的任意字符
\? 匹配其前面的字符0或1次
\+ 匹配其前面的字符至少1次
\{n\} 匹配前面的字符n次
\{m,n\} 匹配前面的字符至少m次,至多n次
\{,n\} 匹配前面的字符至多n次
\{n,\} 匹配前面的字符至少n次
四 shell脚本
1. 1)首行 #!/bin/bash
2)# 注释
3)授予权限
4)检测语法
5)执行
2变量
局部变量 当前进程有效
环境变量 当前进程与子进程都有效
位置变量 把脚本中变量作为脚本参数
3条件测试
test [ ]
-z 是否为空,空为真
-n 是否为不空,不空为真
-gt 是否大于
-ge 是否大于等于
-eq 是否等于
-ne 是否不等于
-lt 是否小于
-le 是否小于等于
= 是否等于
!= 是否不等于
-r FILE:是否存在且可读
-w FILE: 是否存在且可写
-x FILE: 是否存在且可执行
-s FILE: 是否存在且非空
3短路与 短路或
cmd1 && cmd2
如果cmd1 成功 ,则执行cmd2,失败则不执行cmd2
cmd1 || cmd2
如果cmd1 成功 ,则不执行cmd2,失败才执行cmd2
4if语句
1)单分支
if 判断条件;then
fi
2)多分支
if 判断条件1; then
条件1为真的分支代码
elif 判断条件2; then
条件2为真的分支代码
elif 判断条件3; then
条件3为真的分支代码
else
以上条件都为假的分支代码
fi
5case语句
case 变量引用 in
PAT1)
分支1
;;
PAT2)
分支2
;;
... *)
默认分支
;;
esac
原文:https://blog.51cto.com/14451156/2426480