正则表达式
正则表达式
用来在文件中匹配符合条件的字符串,正则是包含匹配。
grep
,
awk
,
sed
等命令可以
支持
正则表达式
通配符用来匹配符合条件的文件名,通配符是完全匹配。ls
,
find
,
cp
这些命令不支持正则表达式,所 以只能使用
shell
自己的通配符来进行
匹配
*前一个字符匹配0次,或任意多次
grep "a*" file.txt匹配所有内容,内容包括空白行
grep "aa*"匹配至少包含有一个a的行
grep "aaa*"匹配最少包含两个连续a的字符串
grep "aaaaa*" file.txt则会匹配最少包含四个连续的a的字符串
.匹配除了换行符外任意一个字符
grep "s..d" file.txt“s..d”会匹配在s和d两个字母之间有两个字符的单词
grep "s.*d" file.txt匹配在s和d之间任意字符
grep ".*"匹配所有内容
^匹配行首,“$”匹配行尾
grep "^M" file.txt匹配以大写”M“开头的行
grep "n$"匹配以小写”n“结尾的行
grep -n “^$” file.txt会匹配空白行(-n显示行号)
[ ]匹配中括号中指定的一一个字符,只匹配一个字符
grep "s[ae]id" file.txt匹配s和i之间的字母,要么是a要么是e
grep "[0-9]" file.txt匹配任意一个数字
grep "^[a-z]" file.txt匹配用小写字母开头的行
[^]匹配中括号中字符以外任意字符
grep "[^a-z]"匹配小写字母以外的字符
grep "^[^a-zA-Z]" file.txt匹配不用字母开头的行
\转义符
grep "\.$" file.txt匹配使用“.”结尾的行
\{n\}其前面的字符恰好出现n次
grep "a\{3\}" file.txt匹配a字母连续出现三次的字符串
grep "[0-9]\{3\}"匹配包含来连续的三个数字的字符串
\{n, \}其前面出现的字符不少于n次
grep "^[0-9]\{3,\}[a-z]" file.txt匹配最少用连续三个数字开头的行
\{n,m\}的字符至少出现n次,最多出现m次
grep "sa\{1,3\}i"
file.txt匹配在字母s和字母i之间最少一个a,最多三个a
字符串截取命令
cut命令
语法:cut [
选项
]
文件名
举例
printf命令
语法:printf '输出类型输出格式' 输出内容
类型转换符 解释%s 输出字符串
%i 输出整数
%f 输出浮点数,如果要保留小数点后两位,使用%.2f,其中.2指参数保留两位小数,f将参数打印为浮点数
转义字符 解释
\a 输出警告声音
\b 输出退格键(Backspace)
\f 清除屏幕
\n 换行 常用
\r 回车 常用
\t 缩进(tab) 常用
\w 垂直输出退格键
举例
awk命令
语法:awk '条件1{动作1}条件2{动作2}...' 文件名
1、条件(pattern): 一般使用关系表达式作为条件
x > 10 判断变量x是否大于10
x >= 10 大于等于
x <= 10 小于等于
2、动作(Action):
格式化输出 流程控制语句
sed命令
sed是一种几乎包括在所有UNIX平台(包括Linux)的轻量级流编辑器。sed主要是用来将数据进行选 取,替换,删除,新增的命令 语法:sed [选项] '[动作]' 文件名
排序命令sort
语法:sort [选项] 文件名
统计命令wc
语法: wc [选项] 文件名