为了账号安全,请及时绑定邮箱和手机立即绑定
  • 在一大段文字中夹杂有三个用户分别是 root:/bin/bash user1:/bin/bash user2:/bin/bash 假如我想通过查找grep命令把他们查找出来,并且只删除user1和user2,我可以这样做 grep "/bin/bash" 文件名 | grep -v "root" 其中“|”前面查找出包含有bin/bash的选项,然后grep -v来取反剔除含有"root"的选项 假如我只想知道刚刚截取到的选项的用户名,我可以 grep "/bin/bash" 文件名 | grep -v "root" |cut -f 1 -d ":" 其中cut -f 1 -d ":"的意思是 -f:需要选取的字段,-d:用来定义分隔符,默认为tab键,1是表示截取的第一列,“:”表示用:来作为分隔符 最后的出的结果是user1 user2
    查看全部
  • 正则表达式和通配符的区别: 1、正则表达式搜索文件数据,通配符则是用来匹配文件名。 2、正则表达式是包含,而通配符则是完全匹配。 3、正则表达式是识别字符串,通配符是文件名
    查看全部
  • 日期和ip的正则
    查看全部
  • 正则是包含匹配,通配符是完全匹配,正则主要用来匹配文件内容,通配符用来匹配文件名。 通配符 ?----一个字符 *----多个字符 []-----匹配括号内的字符
    查看全部
  • 正则表达式 用来检索 替换符合某些规则的文本,使用单个字符描述 匹配符合某些句法规则的字符串 grep 命令尝试去匹配特定文档的每一行,并把之前有一处符合正则表达式的所有行显示出来 正则表达式和通配符的区别
    查看全部
  • grep行提取,cut列提取;awk 按照条件执行printf 流程控制等(按照条件截取) 1.cut [选项] 文件名 -f 列号:提取第几列(从1开始) -d 分隔符:按照指定分隔符分割列 默认为tab -v 取反 (ngrep cut都有此option) cut -f 列号,列号 (多个列号用逗号隔开;这个方法默认的文件以TAB制表符) cut -f 列号,列号 -d "指定的分隔符" (比如图中,以:为分隔符;列出第1,和第3列的内容) 示例: grep "bin/bash" /etc/passwd|grep -v "root"|cut -f 1 -d ":" 提取非root登录用户用户名; df -h 以人性化显示磁盘使用情况,能显示大小的基本都支持人性化显示 注意:用cut截取比较规律的文件,用默认制表符或其他符号作为分隔符,可以方便截取,如果是用空格或 多个空格做分隔符,就会有问题)
    查看全部
  • 3.awk 命令 awk命令格式 '条件1{动作1}条件2{动作2}...' 文件名 一个条件满足,就执行条件后面{}内的动作。 没有条件就无条件执行{}内的动作,如果有条件,就只有满足条件才能执行{}内的动作。 注意:printf中的转移符号都要用""括起来。 awk的流程:依次读取每一行数据,读取完一行数据后,进行条件判断,如果满足条件,就执行该条件对应 的动作,其中文件名为$0,剩下的每一列依次为$1\$2...,判断完一行后,继续判断下一行,直到知道文 件全部判断完 awk '{printf $2 "\t" $4"\n"}' student.txt 注意prinft 里面输出格式的 双引号 df -h| awk '{printf $1"\t" $5"\n"}' #查看系统使用率
    查看全部
  • grep行提取,cut列提取; cut [选项] 文件名 -f 列号:提取第几列(从1开始) cut -f 列号,列号 (多个列号用逗号隔开;这个方法默认的文件以TAB制表符) cut -f 列号,列号 -d "指定的分隔符" (比如图中,以:为分隔符;列出第1,和第3列的内容) -d 分隔符:按照指定分隔符分割列 默认为tab grep "bin/bash" /etc/passwdgrep -v "root"cut -f 1 -d ":" 提取非root登录用户用户名; df -h 以人性化显示磁盘使用情况,能显示大小的基本都支持人性化显示 注意:cut只能以指定的字符进行分割,所以处理空格作为分隔符时比较吃力
    查看全部
  • 1. awk '条件1{执行动作1}条件2{执行动作2}······' 2. awk 'BEGIN{动作0}条件1{动作1}条件2{动作2}······' 表示在所有动作之前先执行动作0 相应的还有END,表示在所有动作执行之后执行动作0 3. FS 为内置变量。修改分隔符(默认为空格和制表符) 在修改FS的变量的动作前要加上BEGIN,这样在执行所有其它动作之前先修改分割符,否则读取第一行数据的时候不能识别制定的分隔符
    查看全部
  • BEGIN加否的区别
    查看全部
  • [0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\} 匹配日期格式yyyy-mm-dd [0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\ 匹配IP地址 vi清空所有行的快捷键:先d后G
    查看全部
  • 输出格式
    查看全部
  • 正则表达式
    查看全部
  • awk默认以空格或者Tab制表符作为分隔 1、条件BAGIN表示在所有动作执行前先执行BEGIN后的那个动作 如#df -h awk 'BEGIN{print "test"}{print $1 "\t" $3}'会在最前面输出test awk在指定分隔符前面一定要加BEGIN 2、条件END表示在所有动作执行后才执行END后的那个动作 如#df -h awk 'END{print "test"}{print $1 "\t" $3}' 会在最后面输出test 3、FS内置变量 如:#cat /etc/passwd grep "/bin/bash" awk 'BEGIN{FS=":"}{print $1 "\t" #3}' #awk在指定分隔符前面一定要加BEGIN,此例截取第1、3列 #cat student.txt grep -v Name awk '$4>=70{print $2}' #此例截取除了列头的成绩大于等于70分的学生姓名,grep -v Name为取反命令,不输出带“Name”的行
    查看全部
  • "[]" 匹配中括号中指定的任意一个字符,只匹配一个字符 "s[ao]id" 匹配s和i字母中间的,要么是a要么是o "[0-9]" 匹配任意一个数字 "^[a-z]" 匹配用小写字母开头的行 "[^]" 匹配除中括号的字符意外的任意一个字符【取反】 "^[^a-z]" 匹配不用小写字母开头的行 "^[^a-zA-Z]" 匹配不用字母开头的行 "\" 转意符 让特殊的符号丧失作用,只表示符号本身 "\.$" 匹配使用"."结尾的行 接上 ".$" 不能用它,因为其表示的意思是以任意字符结尾的行 "\{n\}" 表示其前面的字符【恰好】出现n次 "a\{3\}" 匹配a字母连续出现三次的字符串 "^[0-9]\{3\}" 匹配开头包含连续的三个数字的字符串 "c\{3\}u" 匹配u前面有【大于等于】三个c的字符串 如果需要准确匹配,则需要在前后使用分隔符 "xc\{3\}u" 匹配x和u之间三个c的字符串 "\{n,\}" 表示其前面的字符出现不小于n次 "^[0-9]\{3,\}[a-z]" 匹配最少用连续三个数字开头的行 "\{n,m\}" 匹配其前面的字符至少出现n次,最多出现m次 "sa\{1,3\}i" 匹配在字母s和字母i之间最少一个a,最多三个a
    查看全部

举报

0/150
提交
取消
课程须知
学习本门课程前,还请大家学习慕课网《Tony老师聊shell》系列的前三篇课程!
老师告诉你能学到什么?
1、掌握shell中的正则表达式 2、掌握常用字符截取命令的使用 3、掌握常用字符处理命令的使用

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!