一、awk和sed簡介
awk和sed是類Unix系統中常用的文本處理工具。awk用於處理數據併產生格式化報表,而sed主要用於在文本編輯器中進行高速的數據替換操作。他們都是以行為單位處理輸入文件,且在數據處理過程中可以使用正則表達式來匹配數據。
二、awk的基本用法
awk的基本語法為:「awk [選項參數] ‘pattern {action}’ [filename]」。
其中pattern表示執行的匹配條件,action表示匹配後執行的命令,filename表示待處理的文件名。
例如,我們有一個名為filename.txt的文件,裡面包含三列數據,分別為Name, Age和City,我們想要只輸出年齡大於18歲的人員信息。
我們可以使用以下命令:
“`bash
awk ‘$2>18{print $0}’ filename.txt
“`
該命令中,$2是指第二列數據(即年齡列),$0是指整行數據。如果第二列數據大於18,則會列印整行數據。
三、sed的基本用法
sed的基本語法為:「sed [選項參數] ‘command’ filename」。
其中command表示要執行的命令,filename表示待處理的文件名。
例如,我們有一個名為filename.txt的文件,裡面包含一段文本,我們想要將其中的「abc」替換為「def」。
我們可以使用以下命令:
“`bash
sed ‘s/abc/def/g’ filename.txt
“`
該命令中,s表示替換命令,g表示全局替換。
四、awk/sed常見用法
1. 格式化輸出文本內容
awk可以使用printf函數來格式化輸出文本內容,常見的用法有:
“`bash
awk ‘{printf(“%-15s %-5d %-15s\n”,$1,$2,$3)}’ filename.txt
“`
其中%-15s表示佔位符,-表示左對齊,15表示佔15個字元的寬度。
2. 處理CSV文件
awk可以使用FS命令來指定分隔符,常見的用法有:
“`bash
awk -F, ‘{print $1,$NF}’ filename.csv
“`
其中-F,表示使用逗號作為分隔符,$1表示第一列數據,$NF表示最後一列數據。
3. 批量重命名文件
sed可以使用rename命令來批量重命名文件,常見的用法有:
“`bash
ls *.txt | sed ‘s/\(.*\.\)txt/mv & \1md/g’ | sh
“`
其中,ls *.txt表示列出所有的txt文件,sed ‘s/\(.*\.\)txt/mv & \1md/g’表示將文件名中的txt替換為md,並用mv命令進行重命名,最後用sh來執行命令。
五、總結
awk和sed是Linux下常用的文本處理工具,能夠大幅度提高用戶的工作效率。本文介紹了它們的基本用法及常見用法,希望對讀者有所幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/199057.html