idolook
awk命令默认的分隔符是空格和制表符,print 和printf在awk里面就是以空格和制表符作为分隔符的
print除了空格和制表符是分隔符,还可以自动换行
爱吃泡菜的菜鸟
可以根据视频的内容自己记录,边听边练边记,这样可以加深印象
小黑白起飞吧3330718
一个比较简单的做法是下个nodepad++ 打开文件,在视图里勾上显示空格与制表符,就一清二楚了
weibo_薛梦晗2_03309550
因为你的/dev/mapper/vg_centos64-lv_root 过长,使得size、used等的值是换行呈现的,因此你输出的第5列的第二行是空,而第三行是 / 。验证可将df -h的内容输出到某个文本中。df -h >> df.txt 然后cat df.txt 查看
wulongtao
这个应该是awk决定的吧,把它以参数的形式记录;bash是默认而已,那个之前有节课编写简单加法计算器时不就用了参数$1,$2来运算的么。
sprnate
是同一回事的,printf主要用于awk中输出的
慕虎9238834
printf 是格式化输出,需要制定输出格式
df -h | grep "/dev/sd.." | awk '{printf "%s\n",$5}'
hcices
由于awk的执行原理是先读取数据再判断条件然后执行动作,所以awk在不加BEGIN的情况下先读取第一行数据也就是“root:0:0:root:/root:/bin/bash”再执行{FS=":"}、{printf $1 "\t" $3 "\n"}这两个动作,而此时由于第一条数据已经读取因此{FS=":"}这一动作只对后两条数据起作用