Linux学习——shell编程之正则表达式和字符处理命令
来源:互联网 发布:淘宝开店名字可以改吗 编辑:程序博客网 时间:2024/05/16 03:21
shell编程之正则表达式
一 正则表达式
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
阅读全文
0 0
- Linux学习——shell编程之正则表达式和字符处理命令
- 《Linux命令、编辑器与Shell编程》读书笔记3-linux命令中的特殊字符和正则表达式
- Linux学习之——特殊字符和正则表达式
- shell字符处理命令,通配符,正则表达式
- Linux学习---shell编程(10-字符处理命令)
- Linux Shell编程-字符截取和处理命令
- linux系统之shell编程-正则表达式
- Linux基础知识---Shell编程之正则表达式
- Shell编程-字符处理命令
- shell编程-字符处理命令
- linux—shell正则表达式
- ubuntu之shell编程学习笔记4——正则表达式
- Linux Shell编程-正则表达式
- shell编程之正则表达式
- shell编程之正则表达式
- Shell编程之正则表达式
- shell编程之正则表达式
- shell 编程之正则表达式
- Sieve Prime 素数筛法
- 用gradle添加依赖时怎么确定版本号
- hadoop学习笔记--9.HBase基础
- JavaScript学习(五)
- java线程组
- Linux学习——shell编程之正则表达式和字符处理命令
- V分身
- 20170716Windows11_3_可等待计时器对象
- 《neural network and deep learning》题解——ch03 过度拟合&规范化&权重初始化
- Android App应用调用已安装市场,进行软件评分的功能代码实现
- poj 2443 Set Operation (bitset用法
- leetcode题解-328. Odd Even Linked List && 19. Remove Nth Node From End of List
- 《小白兔到大黑牛》第十篇锁机制基础知识
- Python中的列表、元组