Shell編程-Cut命令-printf命令-awk命令

  • awk內置變量
  • 圖片來自:https://www.cnblogs.com/jiqianqian/p/7944013.html在這裏插入圖片描述
[root@izwz97473w2ydu1pgsmzk4z test]# cut -f 2 student.txt 
NAME
1    furong  F        56
2    fengjie F        76
3    cang    F        99
[root@izwz97473w2ydu1pgsmzk4z test]# vim student.txt 
[root@izwz97473w2ydu1pgsmzk4z test]# cut -f 2 student.txt 
NAME
furong
fengjie
cang

  • 侷限性:df -h搜索不起作用。因爲df- h下面的表格不是以空格作爲分隔符
  • 注意小數點
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
[root@izwz97473w2ydu1pgsmzk4z test]# printf %s %s %s 123 4 5 6
%s%s123456[root@izwz97473w2ydu1pgsmzk4z test]# printf '%s' $(cat student.txt)
IDNAMEGENDERMARK1furongF562fengjieF763cangF99[root@izwz97473w2ydu1pgsmzk4z test]# 
[root@izwz97473w2ydu1pgsmzk4z test]# printf '%s\t%s\t%s\t\n' $(cat student.txt)
ID	NAME	GENDER	
MARK	1	furong	
F	56	2	
fengjie	F	76	
3	cang	F	
99			
[root@izwz97473w2ydu1pgsmzk4z test]# printf '%s\t%s\t%s\t%s\n' $(cat student.txt)
ID	NAME	GENDER	MARK
1	furong	F	56
2	fengjie	F	76
3	cang	F	99

在這裏插入圖片描述
在這裏插入圖片描述

  • 關於awk和printf語句
  • 因爲單引號被awk使用,所以你在printf裏面再寫單引號會導致混淆,所以,裏面的printf語句不使用單引號,但是,轉義符號必須使用雙引號括起來,不然也是無效的
  • 不加任何條件時候,無條件執行
[root@izwz97473w2ydu1pgsmzk4z test]# awk '{printf $1 "\t" $4 "\n"}' student.txt 
ID	MARK
1	56
2	76
3	99
[root@izwz97473w2ydu1pgsmzk4z test]# 

在這裏插入圖片描述

[root@izwz97473w2ydu1pgsmzk4z test]# df -h | grep "^/dev$"
[root@izwz97473w2ydu1pgsmzk4z test]# df -h | grep "/dev$"
devtmpfs        910M     0  910M   0% /dev
[root@izwz97473w2ydu1pgsmzk4z test]# df -h | grep "/dev$" | awk 'printf{ $4 "\n"}'
awk: cmd. line:1: printf{ $4 "\n"}
awk: cmd. line:1: ^ syntax error
[root@izwz97473w2ydu1pgsmzk4z test]# df -h | grep "/dev$" | awk '{printf $4"\n"}'
910M
[root@izwz97473w2ydu1pgsmzk4z test]# df -h | grep "/dev$" | awk '{printf $4"\n"}'|cut -d 'M'
cut: you must specify a list of bytes, characters, or fields
Try 'cut --help' for more information.
[root@izwz97473w2ydu1pgsmzk4z test]# df -h | grep "/dev$" | awk '{printf $4"\n"}'|cut -d 'M' -f 1
910
[root@izwz97473w2ydu1pgsmzk4z test]# 

在這裏插入圖片描述

  • 先讀取一行數據,在從中按照條件來截取

在這裏插入圖片描述
在這裏插入圖片描述

[root@izwz97473w2ydu1pgsmzk4z test]# cat /etc/passwd |grep /bin/bash |awk '{FS=":"}{printf $1 "\t" $4 "\n"}'
root:x:0:0:root:/root:/bin/bash	
admin	1000
[root@izwz97473w2ydu1pgsmzk4z test]# cat /etc/passwd |grep /bin/bash |awk 'BEGIN{FS=":"}{printf $1 "\t" $4 "\n"}'
root	0
admin	1000
[root@izwz97473w2ydu1pgsmzk4z test]# awk '{print $1 "\t" $4}' student.txt 
ID	MARK
1	56
2	76
3	99
[root@izwz97473w2ydu1pgsmzk4z test]# awk '{print $1 "\t" $4}' student.txt 
student.txt  zheng.txt    
[root@izwz97473w2ydu1pgsmzk4z test]# awk 'BEGIN{print  i am sb}{print $1 "\t" $4}' student.txt 

ID	MARK
1	56
2	76
3	99
[root@izwz97473w2ydu1pgsmzk4z test]# awk 'BEGIN{print "i am sb"}{print $1 "\t" $4}' student.txt 
i am sb
ID	MARK
1	56
2	76
3	99
[root@izwz97473w2ydu1pgsmzk4z test]# awk 'END{print "i am sb"}{print $1 "\t" $4}' student.txt 
ID	MARK
1	56
2	76
3	99
i am sb

在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章