一、通配符
- × 匹配任意字符
- ? 匹配任意一个字符
- [] 匹配中括号中的一个字符
二、正则表达式
注意:
grep '^[0-9]' test.txt 代表0-9中任意一个字符开头的 中括号之内代表开头
grep '[^0-9]' test.txt 代表不是由数字开头的 中括号之外代表取反
三、字符截取 cut awk
- cut
- -f 1 截取第一列 -f 2,3 截取第二列和第三列
- -d ":" 以冒号作为分隔符截取 ,默认是以制表符作为分隔符
- printf
a. 输出类型:
- %ns:输出字符串,n代表输出几个字符串
- %ni:输出整数,n代表输出几个数字
- %m.nf:输出浮点数,m和n指代输出的整数位数和小数位数,如%8.2f代表是一个8位的数,6位整数,2位小数
printf '%s\t%s\n' 1 2 3 21 21 一行输出两个字符串
- awk '条件1{动作1}条件2{动作2}' 文件
-
- awk 'BEGIN{print "print start!!!"}{print $1}' student.txt 打印开始之前加个print start
- awk 'END{print "print end!!!"}{print $1}' student.txt 末尾打印print end!!!
- cat /etc/passwd | awk 'BEGIN{FS=":"}{print $1}' 设置分割符,必须加BEGIN,因为是先赋值变量在执行打印的,如果不加begin,第一句的打印就不是以:来作为分割的。
- cat student.txt | grep -v id | awk '3>12{print 1}' 加条件判断
四、字符替换 sed
- sed 选项 '[动作]' 文件名
-
- 选项:
-
- -n 只把经过sed处理过的内容才会显示
- -e 允许对输入的数据应用多条sed命令
- -i 用sed的修改结果直接修改读取数据的文件,而不是屏幕输出
- 动作:
-
- -a 追加,在当前行后面添加一行或多行
- -c 行替换,在c后面的字符串替换掉原数据行
- -i 插入
- -d 删除
- -p 打印
- -s 字符串替换,用一个字符串替换另一个字符串。格式为“行范围s/旧字符串/新字符串/g” 加/g是将范围内的字符串全部替换
- 示例:sed -n '2p' student.txt 只打印第二行
- sed -i '5s/22/30/g' student.txt 把第5行的22替换成30
- sed -e 's/xiaowang/wang/g;s/xiaoming/ming/g' student.txt 一次执行多个替换语句
番外:提取数字
- echo "2014年7月21日" | tr -cd "[0-9]"
- 这样就可以提取出2014721
五、排序
- sort [选项] 文件名
-
- -f 忽略大小写
- -n 以数值型进行排序
- -r 反向排序
- -t 指定分隔符
- -k n[,m] 按照指定的字段范围排序,从n字段开始,m字段结尾
- 示例:sort -t ":" -k "3,3" /etc/passwd 用:把一行数据分割开之后的第三个字段来进行排序
六、统计命令
- wc [选项名] 文件
-
- -l 统计行数
- -w 统计单词数
- -m 统计字符数
开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 6 天,点击查看活动详情