-
awk默认以空格或者Tab制表符作为分隔 cut默认以制表符作为分隔
df -h|grep "/dev/sda1"|awk '{print $5}'|cut -d "%" -f 1 // /dev/sda5已用百分比数
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命令
查看全部 -
awk是一个数据处理工具,相比于sed常常作用于一整行的处理,awk则比较倾向于将一行分成数个”字段“来处理。
通常运行模式: awk ' 条件类型1{动作1} 条件类型2{动作2}...‘ 文件名
例:awk '{printf $2 "\t" $4 "\n"}' filename //第二列 第四列
awk '{print $2 "\t" $4}' filename
printf后面要接换行符"\n" print 不需要
查看全部 -
printf和print
查看全部 -
printf
查看全部 -
printf 1 2 3 //输出1
printf '%s' 1 2 3 //输出123
printf '%s %s %s' 1 2 3 //输出 1 2 3
printf '%s %s' 1 2 3 //输出 1 23
printf '%s\t%s\t%s\n' 1 2 3 4 5 6
输出 1 2 3
4 5 6
echo $(cat student.txt)或者printf '%s' $(cat student.txt) //printf输出student.txt文件内容
查看全部 -
printf
查看全部 -
printf
查看全部 -
printf
查看全部 -
grep行提取,cut列提取;
cut [选项] 文件名
-f 列号:提取第几列(从1开始)
cut -f 列号,列号 (多个列号用逗号隔开;这个方法默认的文件以TAB制表符)
cut -f 列号,列号 -d "指定的分隔符" (比如图中,以:为分隔符;列出第1,和第3列的内容 cut-f 1,3 -d ":")
-d 分隔符:按照指定分隔符分割列 默认为tab制表符
grep "/bin/bash" /etc/passwd | grep -v "root" | cut -f 1 -d ":" 提取非root登录用户用户名;
查看全部 -
#vim命令模式:
清空当前行内容: d
清空所有内容 : d+G
查看全部 -
正则实例
正则表达式适合在文档中提取,不适合做写入的判断依据
匹配日期:"[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\}"
还可以匹配电话号码、邮件地、URL地址信息等
匹配时间格式:grep "[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}" test.txt
查看全部 -
\{n,m\} n到m次
查看全部 -
\{n,\}
\{n,m\} n到m次
查看全部 -
\{n\} 这里面有两个转义符,第一个使{丧失作用,第二个使}丧失 作用
查看全部
举报