printf ‘输出类型输出格式’ 输内容
输出类型:
%ns 输出字符串,n是数字指代输出几个字符
%ni 输出整数,n是数字,指代输出几个数字
%m.nf 输出浮点数,m和n是数字,指代输出总位数和小数位数,如%8.2f 代表共输出8位数,其中2位是小数,6为是整数
输出格式:
\a : 输出警告声音
\b:输出退格键
\f:清除屏幕
\n:换行
\r:回车
\t:水平输出退格键
\v:垂直输出退格键
printf '%s' 1 2 3 4 5 6
123456
printf '%s %s %s' 1 2 3 4 5 6
1 2 34 5 6
#三个字符为一组,中间换行
printf '%s %s %s\n' 1 2 3 4 5 6
1 2 3
4 5 6
#4表示占多少位
printf '%4s' 1 2 3 4 5 6
1 2 3 4 5 6
printf后面不能直接跟文件名字
printf '%s' student.txt
student.txt
如果想要输出student.txt文件的内容,需要这样
printf '%s' $(cat student.txt)
IDnamesexscore1llM902yyF883uuM88
awk ‘条件1{动作1}条件2{动作2}…’ 文件名
条件:
一般使用关系表达式作为条件
x>10 判断变量x是否大于10
x>=10 大于等于
x<=10 大于等于
动作:
格式化输出
流程控制语句
awk可以直接提取制表符和空格分割的列,使用$n来表示第几列
[root@centos01 shellcode]# awk '{printf $2 "\t" $4 "\n"}' student.txt
name score
ll 90
yy 88
uu 88
[root@centos01 shellcode]# df -h | grep -v "已用" | awk '{printf $5 "\n"}'|cut -d "%" -f 1
34
0
0
2
0
1
15
1
100
使用FS
[root@centos01 shellcode]# cat /etc/passwd | awk 'BEGIN {FS=":"} {printf $1 "\t" $3 "\n"}'
root 0
bin 1
daemon 2
adm 3
lp 4
sync 5
shutdown 6
halt 7
mail 8
operator 11