shell指令碼文字處理工具

轻棠發表於2024-04-25

image

宣告:
以下內容為個人筆記,內容不完全正確,請謹慎參考。

文字處理工具

cut:
cut 工作是“剪”,具體來說就是在檔案中負責剪下資料。cut 命令從檔案的每個行剪下位元組、字元和欄位輸出。
1、基本語法:
cut [選項引數] filename
說明:預設分隔符是副表符
2、選項引數說明
選項引數:1)-f 2)-d 3)-c
功能:1)列號,提取第幾列 2)分隔符,按照指定分隔符分割列,預設是製表符"\t" 3)按照字元進行切割,後加n表示取第幾列 比例 -c 1
3、案例:
image

獲取系統中PATH變數,第2個":"開始後的所有路徑
image

切割ifconfig後列印IP地址
以ens33IP地址為例:
image

所有網路卡IP切割如下:
image

awk:
一個強大的文字分析工具,把檔案逐行的讀入,以空格預設為分隔符將每行切片,切開的部分再進行
分析處理。
1)基本語法:
awk [選項引數] '/pattern1/{action}' '/pattern2/{action}'......... filename
pattern 表示awk在資料查詢中地內容,就是匹配模式
action 在找到匹配內容時所執行的一系列命令。
2)選項引數說明
-F 指定輸入檔案分隔符
-V 賦值一個使用者定義變數
3)案例:

以root開頭的所有行,輸出第7列
image

以root開頭的所有行,輸出第1列和第7列
image

只顯示/etc/passwd第一行和第七列,以逗號分割,具在所有行前面新增列名"user,shell"在最後一行新增"end of file"。
image

4)awk內建變數
FILENAME: 檔名
NR: 已讀的記錄數(行號)
NF: 瀏覽記錄域的個數(切割後列的個數)
5)案例實操
1、統計passwd檔名,行號,列數
image

非管道操作:
image

2、查尋ifconfig 命令輸出結果的空行所在的行號
複雜:
image

簡單:
image

擴充:切割輸出IP
複雜:
image

簡單:
image

相關文章