-
“.”的例子查看全部
-
a*的错误查看全部
-
基础正则表达式查看全部
-
正则表达式与通配符查看全部
-
通配符为完全匹配 正则为包含匹配查看全部
-
字符处理命令 1.排序命令sort sort [选项] -f 忽略大小写 -n 以数值型进行排序 -r 反向排序 -t 指定分隔符,默认是制表符 -k n[,m] 按照指定的字段范围排序.从第n字段开始,m字段结束(默认到行尾) 2.统计命令wc wc [选项] 文件名 选项: -l 只统计行数 -w 只统计单词数 -m 只统计字符数查看全部
-
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替换为空查看全部
-
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行提取,cut列提取; cut [选项] 文件名 -f 列号:提取第几列(从1开始) cut -f 列号,列号 (多个列号用逗号隔开;这个方法默认的文件以TAB制表符) cut -f 列号,列号 -d "指定的分隔符" (比如图中,以:为分隔符;列出第1,和第3列的内容) -d 分隔符:按照指定分隔符分割列 默认为tab grep "bin/bash" /etc/passwd | grep -v "root" | cut -f 1 -d ":" 提取非root登录用户用户名;查看全部
-
"[]" 匹配中括号中指定的任意一个字符,只匹配一个字符 "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查看全部
-
基础正则 符号: . 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]查看全部
-
* 前一个字符匹配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位的小写字母查看全部
-
正则表达式与通配符 通配符 * 代表匹配任意内容 ? 代表匹配任意一个内容 [] 代表中括号中一个字符 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep,awk,sed等命令可以支持正则表达式。 通配符用来匹配符号条件的文件名,通配符是完全匹配。ls,find,cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配。查看全部
举报
0/150
提交
取消