为了账号安全,请及时绑定邮箱和手机立即绑定
  • 定义别名 修改家目录下 .bashrc alias grep='grep --color=auto' 文件生效 source .bashrc 正则表达式 * 前一个字符匹配0次或任意多次 . 匹配除了换行符外任意一个字符 ^ 匹配行首 例如 ^hello 会匹配以hello开头的行 $ 匹配行尾 例如 hello$ 会匹配以hello结尾的行 [] 匹配中括号中指定的任意一个字符,只匹配一个字符。[0-9]匹配任意一位数字 [^] 匹配除中括号的字符以外的任意一个字符。 例如 [^0-9]匹配任意一位非数字字符 [^a-z]表示任意一位非小写字母 \ 转义符 用于取消将特殊符号的含义取消 \{n\} 表示其前面的字符恰好出现N次 例如 [0-9]\{4\} 匹配4位数字 [1][3-8][0-9]\{9\} 匹配手机号码 \{n,\} 表示其前面的字符出现不小于n次。 例如 [0-9]\{2,\} 表示两位及以上的数字 \{n,m\} 表示其前面的字符至少出现n次,最多出现m次。 例如 [a-z]\{6,8\} 匹配6到8位的小写字母
    查看全部
  • sed命令 主要用来将数据进行选取、替换、删除、新增的命令 sed [选项] '[动作]' 文件名 选项: -n:一般sed命令会把所有数据都输出到屏幕,如果加入此选项,则只会把经过sed命令处理的行输出到屏幕 -e:允许对输入数据应用多条sed命令编辑 -i:用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出,注意使用-i时不要出现误操作 动作: a :追加,在当前行后添加一行或多行 c :行替换,用c后面的字符串替换原数据行,替换整行,注意与s的区别 i :插入,在当前行前插入一行或多行 d :删除,删除指定的行 p :打印,输出指定的行 s :字串替换,用一个字符串替换另外一个字符串。格式为“行范围s/旧字串/新字串” sed -n '2p' student.txt 查看文件的第二行,如果没有-n将输出全部内容 sed '2,4d' student.txt 表示删除【第2-4行】,但是不改变文件本身 sed '2a piaoliangdecxiaoguniang' student.txt 在第2行之后添加字符串,但是不改变字符串本身 sed '4c xxwmpg' student.txt 将第二行的整行替换为xxwmpg sed '6s/70/100/g' student.txt 将第7行的所有70全部替换为100,如果不指定行的话会替换所有的指定字符串 -e ; 负责隔开进行多个动作 sed -e 's/fengj//g';s/cang//g' student.txt 同时把fengj和cang替换为空
    查看全部
  • 正则表达式与通配符 通配符 * 代表匹配任意内容 ? 代表匹配任意一个内容 [] 代表中括号中一个字符 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep,awk,sed等命令可以支持正则表达式。 通配符用来匹配符号条件的文件名,通配符是完全匹配。ls,find,cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配。
    查看全部
  • 二. 字符截取命令 1.cut字段提取命令 --> 列提取命令 提取系统中所有普通用户:grep "/bin/bash" /etc/passwd grep -v "root" cut [选项] 文件名 -f 列号 :提取第几列 -d 分隔符 :按照指定分隔符分割列 ID Name Gender Mark 1 bail F 96 2 zhangc F 95 3 xialy F 97 4 liqh F 94 必须使用制表符,cut -f 2,4 student.txt grep "/bin/bash" /etc/passwd grep -v "root" cut -f 1 -d ":" cut命令的局限性:cut命令默认是将tab作为分隔符,若要指定其他分隔符,则cut命令会【完全按照】用户""中的分隔符划分 查看系统分区--> df -h cut -d " " -f 5 将会出现错误 2.printf命令 --> 格式化输出命令 printf "输出类型输出格式" 输出内容 输出类型: %ns:输出字符串。n是数字,指代输出几个字符 %ni:输出整数。n是数字,指代输出几个数字 %m.nf:输出浮点数。m和n是数字,指代输出的整数位数和小数位数。如%8.2f代表共输出8位数,其中2是小数位数,6位是整数 输出格式: \a:输出警告声音 \b:输出退格键,也就是Backspace键 \f:清空屏幕 \n:换行 \r:回车,也就是Enter键 \t:水平输出退格键,也就是Tab键 \v:垂直输出退格键,也就是Tab键 printf '%s\t%s\t%s\n' 1 2 3 4 5 6 --> 此时才会正确输出: 1 2 3 4 5 6 使用printf输出命令,必须明确指出所有的格式 如果想要使用printf读取文件中的内容就需要: printf '%s' $(cat student.txt) 不调整输出格式 printf '%s\t%s\t%s\t%s\n' $(cat student.txt) 调整输出格式 3.awk命令 awk命令的输出中支持print和printf命令 print在输出之后会在自动加入换行符,但Linux系统中默认没有print命令 printf是标准格式输出命令,并不会自动加入换行符,如需换行,需要手动加入换行符
    查看全部
  • sed命令 sed [选项] [动作] 文件名 选项: -n 只输出经过sed处理过的行到屏幕 -e 允许一次应用多个动作 -i 直接修改文件,并且不由屏幕输出 动作: a : 追加,在当前行后添加一行或多行 c : 整行替换 i : 插入,在当前行前插入一行或多行 p : 打印 s : 字串替换(替换格式与vim中的类似) '行范围s/旧字串/新字串/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”的行
    查看全部
  • awk是一个数据处理工具,相比于sed常常作用于一整行的处理,awk则比较倾向于将一行分成数个”字段“来处理。 通常运行模式: awk ' 条件类型1{动作1} 条件类型2{动作2}...‘ filename 例:awk '{printf $2 "\t" $4 "\n"}' filename awk '{print $2 "\t" $4}' filename printf后面要接换行符"\n" print 不需要
    查看全部
  • 基础正则 符号: . grep "s..d" test.txt 表示匹配s和d之间含有2个任意字符(除换行符)行,有多少个点就多少个字符 grep "s.*d" test.txt 表示匹配s和d之间含有任意内容的行 符号^代表匹配行首,符号$代表匹配行尾 grep "^s" test.txt 匹配以s开头的行 grep "b$" test.txt 匹配以b结尾的行 grep "^$" test.txt 匹配空白行 grep -n 在结果中增加行号 符号[ ]的作用与通配符中的[ ]一致 grep "[0-9]" test.txt 匹配包含有数字的全部行 注意:^用在[ ]内代表取反 grep "[^0-9]" test.txt 匹配包含字母的全部行 匹配所有字母: [a-zA-z]
    查看全部
  • s替换范围内的字符的用法
    查看全部
  • 4.sed命令 主要用来将数据进行选取、替换、删除、新增的命令 sed [选项] '[动作]' 文件名 选项: -n:一般sed命令会把所有数据都输出到屏幕,如果加入此选项,则只会把经过sed命令处理的行输出到屏幕 -e:允许对输入数据应用多条sed命令编辑 -i:用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出,注意使用-i时不要出现误操作 动作: a :追加,在当前行后添加一行或多行 c :行替换,用c后面的字符串替换原数据行,替换整行,注意与s的区别 i :插入,在当前行前插入一行或多行 d :删除,删除指定的行 p :打印,输出指定的行 s :字串替换,用一个字符串替换另外一个字符串。格式为“行范围s/旧字串/新字串” sed -n '2p' student.txt 查看文件的第二行,如果没有-n将输出全部内容 sed '2,4d' student.txt 表示删除【第2-4行】,但是不改变文件本身 sed '2a piaoliangdecxiaoguniang' student.txt 在第2行之后添加字符串,但是不改变字符串本身 sed '4c xxwmpg' student.txt 将第二行的整行替换为xxwmpg sed '6s/70/100/g' student.txt 将第7行的所有70全部替换为100,如果不指定行的话会替换所有的指定字符串 -e ; 负责隔开进行多个动作 sed -e 's/fengj//g';s/cang//g' student.txt 同时把fengj和cang替换为空
    查看全部
  • "[]" 匹配中括号中指定的任意一个字符,只匹配一个字符 "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
    查看全部
  • 字符处理命令 1.排序命令sort sort [选项] -f 忽略大小写 -n 以数值型进行排序 -r 反向排序 -t 指定分隔符,默认是制表符 -k n[,m] 按照指定的字段范围排序.从第n字段开始,m字段结束(默认到行尾) 2.统计命令wc wc [选项] 文件名 选项: -l 只统计行数 -w 只统计单词数 -m 只统计字符数
    查看全部
  • 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登录用户用户名;
    查看全部
  • 匹配ip的时候ip最大值为255.255.255.255 所以每一位的范围有限制
    查看全部
  • "\{n\}"表示其前面的字符恰好出现n次 "\{n,\}"表示其前面的字符出现n次以上 "^[0-9]\{3\}[a-z]"以数字开头,且三个以上字母的行
    查看全部
首页上一页1234567下一页尾页

举报

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

微信扫码,参与3人拼团

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

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