通配符与正则表达式的区别
通配符:
*:任意多个字符
?:任意一个字符
[]:匹配括号中的一个字符
1、匹配文件名称(linux系统)
2、通配符是完全匹配。
3、搜索文件名的命令ls、find、cp等命令不支持正则表达式,
所以只能使用shell的通配符来匹配
正则表达式(包含通配符):
1、匹配文件中的数据(linux系统)
2、正则是包含匹配。
3、搜索字符串的命令grep、awk、sed等命令支持正则表达式。
一、正则表达式:
* 前一个字符匹配0次或任意次
. 匹配除了换行符外任意一个字符
^ 匹配行首
$ 匹配行尾 ^$:空白行
[] 匹配括号中的任意一个字符
[^] 匹配括号外的任意一个字符
\ 转义符,让特殊功能的字符变成一般字符
\{n\} 前一个字符出现n次(最好加定界符)
\{n,\} 前一个字符出现不少于n次
\{n,m\} 前一个字符至少出现n次,最多m次
二、字符截取命令
1、cut字段提取命令
cut -f n,m 输出第m,n列
-d ":" 分隔符默认为制表符
df -h 输出磁盘信息
2、printf命令
printf '输出类型输出格式' 输出内容
输出类型
%ns
%ni
%m.nf
输出格式
\a
\t
...
3、awk命令(复杂,功能强大)
awk '条件{动作}条件{动作}' 文件名
example:awk '{printf $1 "\t" $4}' student.txt
BEGIN/END 条件
FS 内置变量,分隔符
example:awk 'BEGIN{FS=":"}{printf $2 $4}' student.txt
awk '$4>=70{prinf $2}' student.txt
4、sed命令:用于修改文件内容(近似vim)
sed [选项] '[动作]' 文件名
选项
-n 输出处理的行
-e 允许应用多条sed命令,分号“;”分隔sed '[动作];[动作]'
-i 用sed的修改结果直接修改文件,而不是由屏幕输出
动作
a 追加
c 行替换
i 插入
d 删除
p 打印
s 字串替换
example:sed -n '2p' student.txt 打印第二行
sed '2,4d' student.txt 删除2至4行
sed 's/旧字符串/新字符串/g'
三、字符处理命令
sort命令,排序
sort [选项] 文件名
-f 忽略大小写
-n 以数值型进行排序
-r 反向排序
-t 指定分隔符
-k n[,m] 按照指定字段范围排序
example:sort -n -t ":" -k 3,3 /etc/passwd
wc命令 ,统计命令
wc [选项] 文件名
-l 只统计行数
-w 只统计单词数
-m 只统计字符数
example: wc /etc/passwd
视频教程:http://www.imooc.com/learn/378
通配符:
*:任意多个字符
?:任意一个字符
[]:匹配括号中的一个字符
1、匹配文件名称(linux系统)
2、通配符是完全匹配。
3、搜索文件名的命令ls、find、cp等命令不支持正则表达式,
所以只能使用shell的通配符来匹配
正则表达式(包含通配符):
1、匹配文件中的数据(linux系统)
2、正则是包含匹配。
3、搜索字符串的命令grep、awk、sed等命令支持正则表达式。
一、正则表达式:
* 前一个字符匹配0次或任意次
. 匹配除了换行符外任意一个字符
^ 匹配行首
$ 匹配行尾 ^$:空白行
[] 匹配括号中的任意一个字符
[^] 匹配括号外的任意一个字符
\ 转义符,让特殊功能的字符变成一般字符
\{n\} 前一个字符出现n次(最好加定界符)
\{n,\} 前一个字符出现不少于n次
\{n,m\} 前一个字符至少出现n次,最多m次
二、字符截取命令
1、cut字段提取命令
cut -f n,m 输出第m,n列
-d ":" 分隔符默认为制表符
df -h 输出磁盘信息
2、printf命令
printf '输出类型输出格式' 输出内容
输出类型
%ns
%ni
%m.nf
输出格式
\a
\t
...
3、awk命令(复杂,功能强大)
awk '条件{动作}条件{动作}' 文件名
example:awk '{printf $1 "\t" $4}' student.txt
BEGIN/END 条件
FS 内置变量,分隔符
example:awk 'BEGIN{FS=":"}{printf $2 $4}' student.txt
awk '$4>=70{prinf $2}' student.txt
4、sed命令:用于修改文件内容(近似vim)
sed [选项] '[动作]' 文件名
选项
-n 输出处理的行
-e 允许应用多条sed命令,分号“;”分隔sed '[动作];[动作]'
-i 用sed的修改结果直接修改文件,而不是由屏幕输出
动作
a 追加
c 行替换
i 插入
d 删除
p 打印
s 字串替换
example:sed -n '2p' student.txt 打印第二行
sed '2,4d' student.txt 删除2至4行
sed 's/旧字符串/新字符串/g'
三、字符处理命令
sort命令,排序
sort [选项] 文件名
-f 忽略大小写
-n 以数值型进行排序
-r 反向排序
-t 指定分隔符
-k n[,m] 按照指定字段范围排序
example:sort -n -t ":" -k 3,3 /etc/passwd
wc命令 ,统计命令
wc [选项] 文件名
-l 只统计行数
-w 只统计单词数
-m 只统计字符数
example: wc /etc/passwd
视频教程:http://www.imooc.com/learn/378