Linux学习——shell编程之正则表达式和字符处理命令
2017-07-16 16:42
357 查看
shell编程之正则表达式
一 正则表达式
1 什么是正则表达式
2 shell编程之正则表达式与通配符
正则表达式:用于在文件中匹配符合条件的字符串。正则是包含匹配。grep 、awk 、sed等命令支持正则表达式。
通配符:用于匹配符合条件的文件名,通配符是完全匹配。ls、find、cp 这些命令不支持正则表达式,只能使用shell自己的通配符来进行匹配。
3 shell编程之基础正则表达式
正则表达式:基础正则和扩展正则
6 shell编程之正则表达式案例
备注:
grep行提取命令
grep -v ,取反
二 字符截取命令
1 shell字符截取命令之cut命令
列提取命令
cut [选项] 文件名
备注:df 查看系统当前的分区状态 df -h
2 shell字符截取命令之printf
标准输出命令,格式化输出!
printf '输出类型 输出格式' 输出内容
3 shell字符截取命令之awk命令
列提取命令
awk '条件1{动作2} 条件2{动作2}...' 文件名
4 shell字符字符替换命令之sed命令
字符替换, sed主要用来对数据进行选取、替换、删除、新增的命令。
sed [选项] '[动作]' 文件名
三 字符处理命令
排序命令
sort [选项] 文件名
统计命令
wc [选项] 文件名
欢迎访问我的csdn博客,我们一同成长!
"不管做什么,只要坚持下去就会看到不一样!在路上,不卑不亢!"
博客首页:http://blog.csdn.net/u010648555
一 正则表达式
1 什么是正则表达式
正则表达式用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分隔、匹配、查找及替换操作。
2 shell编程之正则表达式与通配符
正则表达式:用于在文件中匹配符合条件的字符串。正则是包含匹配。grep 、awk 、sed等命令支持正则表达式。
通配符:用于匹配符合条件的文件名,通配符是完全匹配。ls、find、cp 这些命令不支持正则表达式,只能使用shell自己的通配符来进行匹配。
通配符: - * 匹配任意内容(0个或者多个) - ? 匹配任意一个内容 - [] 匹配中括号的一个字符
3 shell编程之基础正则表达式
正则表达式:基础正则和扩展正则
元字符: * #重复匹配前一个字符0到多次 a* #这种写法无意义 aa* #查找包含a的字符串 . #匹配除了换行符外任意一个字符,类似通配符? .* #匹配全部内容 ^ #匹配行首 $ #匹配行尾 ^$ #会匹配空白行 [] #匹配中括号中的指定任意一个字符,只匹配一个字符 [0-9] [a-z] ^[0-9] #数字开头 [^] #匹配除了中括号的字符以外的任意一个字符,(取反) ^[^a-z] #匹配不用小写字母开头的行 ^[^a-zA-Z] #匹配不用字母开头的行 \ #转义符,让特殊的字符丧失意义 \.$ #匹配使用"."结尾的行 \{n\} #表示其前面的字符恰好出现n次 a\{3\} #匹配a字母连续出现三次的字符串 [0-9]\{3\} #匹配包含连续的三个数字的字符串 \{n,\} #表示其前面字符出现不少于n次。 \{n,m\} #表示其前面的字符至少出现n次,最多出现m次
6 shell编程之正则表达式案例
匹配日期格式YYYY-MM-DD [0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\} 匹配Ip [0-9]\{1,3\}.[0-9]\{1.3\}.[0-9]\{1.3\}.[0-9]\{1.3\}
备注:
grep行提取命令
grep -v ,取反
二 字符截取命令
1 shell字符截取命令之cut命令
列提取命令
cut [选项] 文件名
选项: -f 列号:提取第几列,(默认分隔符是制表符) -d 分隔符:按照指定分隔符分隔列 例子:截取当前系统登录的用户名 grep "/bin/bash" /ect/passwd | grep -v "root" | cut -f 1 -d ":" cut的局限性: 只能分隔规格的字符串 只能截取有规格的字符串
备注:df 查看系统当前的分区状态 df -h
2 shell字符截取命令之printf
标准输出命令,格式化输出!
printf '输出类型 输出格式' 输出内容
输出类型: %ns : 输出字符串。n是数字指定输出几个字符 %ni : 输出整数。n是数字指定输出几个数字 %m.nf : 输出浮点数。m和n是数字。 例如:%8.2 代表共输出8位,其中2位小数,6为整数。 输出格式: \a : 输出警告声音 \b : 输出退格键 \f : 清除屏幕 \n :换行 \r :回车 \t :水平输出退格键,,也就是tab键 \v :垂直输出退格键,也就是tab键 例子: printf '%s' $(cat test.txt) #不调整输出格式
3 shell字符截取命令之awk命令
列提取命令
awk '条件1{动作2} 条件2{动作2}...' 文件名
条件: 一般使用关系表达式作为条件 x > 10 判断变量x是否大于10 x >= 10 大于等于 动作: 格式化输出 流程控制语句 例子: awk '{printf $2 "\t" $4 "\n"}' text.txt df -h | awk '{print $1 "\t" $3}' awk中print和printf printf,标准输出,需加换行符 print,不需要加换行符,默认最后换行
4 shell字符字符替换命令之sed命令
字符替换, sed主要用来对数据进行选取、替换、删除、新增的命令。
sed [选项] '[动作]' 文件名
选项: -n : sed 处理的行输出 -e :允许对输入数据应用多条sed命令编辑 -i : 用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出 动作: a : 追加 c : 行替换 i : 插入,插入一行或者多行 d : 删除,删除指定的行 p :打印,输出指定的行 s :字串替换
三 字符处理命令
排序命令
sort [选项] 文件名
选项: -f :忽略大小写 -n :以数值型进行排序 -f :反向排序 -t :指定分隔符
统计命令
wc [选项] 文件名
选项: -l 只统计行数 -w 只统计单词数 -m 只统计字符数
欢迎访问我的csdn博客,我们一同成长!
"不管做什么,只要坚持下去就会看到不一样!在路上,不卑不亢!"
博客首页:http://blog.csdn.net/u010648555
相关文章推荐
- Linux学习——shell编程之正则表达式和字符处理命令
- 《Linux命令、编辑器与Shell编程》读书笔记3-linux命令中的特殊字符和正则表达式
- [linux学习笔记]第3天:变量分类,重定向,管道命令,程序执行流,文本处理类命令, 正则表达式,短路操作符
- Linux学习---shell编程(10-字符处理命令)
- Linux-shell编程-正则表达式与字符修改命令
- Linux学习 -- Shell编程 -- 字符处理命令
- 字符及文本处理之正则表达式:Linux/Unix工具与正则表达式的POSIX规范
- linux学习之grep egrep 命令及正则表达式
- Linux学习第二十五篇--正则表达式和文件内容处理
- Linux学习---shell编程(06-字符截取命令)
- Linux学习 -- Shell编程 -- 正则表达式
- linux学习笔记: grep命令,正则表达式
- Linux学习日记 —— 11.2.2 Shell编程-字符截取命令-printf命令
- Linux中正则表达式与文件格式化处理命令(awk/grep/sed)
- Linux学习---shell编程(05-通配符,正则表达式)
- Linux学习之字符处理命令
- shell字符处理命令,通配符,正则表达式
- Linux学习笔记三:gvim中到跳转命令和部分正则表达式
- Vbird的Linux私房菜学习笔记之正则表达式-特殊字符
- 【Linux学习笔记九】Shell编程-正则表达式