成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

高效處理文本:grep、sed、awk

開發 前端
grep、sed??和??awk??在??Linux??文本處理工作中作用巨大,它們既可以單獨使用,解決各類簡單或復雜的文本處理需求,也能相互配合形成更強大的文本處理 “組合拳”。建議大家在日常工作中多實踐,熟練掌握這些工具,提升工作效率。

前言

Linux系統中,文本處理是日常運維和開發工作中的常見任務。grep、sedawk這三個工具堪稱文本處理領域的三劍客,它們功能強大且各有所長,熟練掌握它們能顯著提升工作效率。

grep:文本搜索利器

概述

grep是用于在文本文件中搜索指定模式的命令行工具,它支持使用正則表達式進行匹配,并默認輸出匹配的整行內容。在日志分析和文本信息提取場景中,grep應用廣泛,比如從大量日志文件里精準找出錯誤信息或特定事件記錄。

原理

grep工作時,首先從指定文件或標準輸入逐行讀取數據,接著采用正則表達式對每行數據進行模式匹配,一旦匹配成功就將該行輸出。

語法與選項

基本語法為:grep [options] pattern [file...] ,其中options是可選參數,pattern是必填的搜索模式,file是要搜索的文件或目錄(可多個)。常見選項如下:

圖片圖片

示例

  • 忽略大小寫搜索:查找系統日志中包含warning(不區分大小寫)的行,命令為grep -i warning /var/log/syslog
  • 遞歸查詢:在項目代碼目錄中遞歸查找包含database的文件行,命令為grep -ir database /home/user/project/src
  • 擴展正則表達式搜索:查找文件中符合特定日期格式(如YYYY-MM-DD)的行,命令為grep -E '[0-9]{4}-[0-9]{2}-[0-9]{2}' data.txt
  • 反向匹配:過濾掉配置文件中的注釋和空行,命令為grep -Ev '^#|^$' /etc/httpd/conf/httpd.conf
  • 顯示行號:找出用戶配置文件中包含usernamepassword的行號,命令為grep -En 'username|password' ~/.config/user.conf
  • 查找文件名:查找當前目錄下包含error的文件名,命令為grep -l error *
  • 輸出匹配行前后內容:查找郵件日志中包含spam的行及其前后2行,命令為grep -iC 2 spam /var/log/mail.log

sed:文本編輯大師

概述

sed是一款流編輯器,支持在文件中進行文本替換、刪除、添加等操作,并且支持基礎和擴展正則表達式,提供豐富文本處理功能,如替換命令、地址定界等。在批量替換文本、修改配置文件以及結合其他命令實現復雜文本處理任務方面,sed表現出色。

原理

sed從輸入流讀取一行內容并存入臨時緩沖區(模式空間),然后依據設定的命令在模式空間執行編輯操作,最后將處理后的內容輸出到標準輸出。

語法與選項

基本語法為:sed [option] 'sed command' file 。常用選項包括:

示例

先復制/etc/hosts文件到/tmp下作為測試文件:cp /etc/hosts /tmp/hosts

增加操作

a是追加內容到指定行后面,i是插入內容到指定行前面

# 在第一行前面插入# This is a comment并修改文件
sed -i '1i # This is a comment' /tmp/hosts

# 在最后一行后面追加::1 localhost ipv6 - localhost ipv6 - loopback
sed -i '$a ::1 localhost ipv6 - localhost ipv6 - loopback' /tmp/hosts
刪除操作
# 刪除第一行
sed -i '1d' /tmp/hosts

# 刪除4 - 6行
sed -i '4,6d' /tmp/hosts

# 刪除匹配127.0.0.1
sed -i '/127.0.0.1/d' /tmp/hosts

# 刪除以#開頭的注釋行
sed -i '/^#/d' /tmp/hosts

# 刪除文件中的空行
sed -i '/^$/d' /tmp/hosts
更改操作

替換操作常用模板為sed -i 's#目標內容#替換內容#g' file

#將文件中的example.com替換為new-example.com
sed -i 's#example.com#new-example.com#g' /tmp/hosts
sed -i 's/new-example.com/new-example.com/g' /tmp/hosts

# 該行所有192.168替換為10.0
sed -i '/^192.168./{s#192.168.#10.0.#g}' /tmp/hosts
查找操作
# 打印`/tmp/hosts`文件第五行內容
sed -n '5p' /tmp/hosts

awk:數據處理專家

概述

awk是編程語言工具,擅長處理數據和生成報告,可按行和列分析文本文件,并對符合條件的數據執行操作。其數據來源廣泛,包括標準輸入、管道或文件,尤其適用于處理結構化文本數據,如日志文件、CSV文件等。

原理

awk工作分為三個主要部分:BEGIN塊、主循環體和END塊。

  • BEGIN塊代碼在處理輸入行前執行且僅執行一次,常用于初始化變量或打印表頭;
  • 主循環體逐行讀取輸入文件,按指定分隔符(默認為空格或制表符)將每行分割成字段并存入內建變量;
  • END塊代碼在所有輸入行處理完畢后執行且僅執行一次,常用于輸出最終結果或總結信息。實

際使用時,可根據需求選擇使用相應部分。具體工作流程為讀入一行數據存入內存,按命令對每行數據執行操作,不斷重復直至文件結束。

語法與選項

基本語法為:awk [options] 'pattern {action}' file 。可選項如下:

圖片圖片

圖片圖片

示例

/tmp/employee.csv文件(格式為姓名,年齡,部門,薪資)為例:

# 輸出全文并附帶行號
awk '{print NR,$0}' /tmp/employee.csv

# 只打印第三行
awk 'NR==3{print}' /tmp/employee.csv

# 以 “,” 為分隔符,打印姓名列
awk -F ","'{print $1}' /tmp/employee.csv

# 打印年齡列和薪資列
awk -F ","'{print $2,$3}' /tmp/employee.csv

# 打印薪資大于 5000 的員工姓名和薪資
awk -F ","'$3 > 5000{print $1,$3}' /tmp/employee.csv

# 打印薪資等于5000的員工信息
awk -F ","'$3 == 5000{print $0}' /tmp/employee.csv

# 按特定格式輸出員工信息
awk -F ","'{print "員工 " $1 ",年齡 " $2 ",薪資 " $3 }' /tmp/employee.csv

最后

grep、sedawkLinux文本處理工作中作用巨大,它們既可以單獨使用,解決各類簡單或復雜的文本處理需求,也能相互配合形成更強大的文本處理 “組合拳”。建議大家在日常工作中多實踐,熟練掌握這些工具,提升工作效率。

責任編輯:武曉燕 來源: 一安未來
相關推薦

2025-05-12 08:35:00

Linux文本處理工具運維

2019-08-20 14:29:45

grepsedawk

2017-03-31 14:05:26

Linux正則表達式基礎知識

2025-02-10 08:10:00

Linuxsed命令

2017-03-02 18:10:20

LinuxShell命令

2021-09-10 16:30:29

LinuxShell文本

2021-03-15 07:39:48

LinuxAwk 語言

2021-05-13 10:25:29

Linuxgrep命令

2024-04-15 08:39:54

2023-09-05 10:04:35

Linux運維

2016-03-30 11:16:33

2024-11-06 17:04:47

AWK編程

2022-03-10 10:39:00

LinuxSedAwk

2023-12-10 21:35:45

Linux服務器日志分析

2014-02-12 14:45:40

Linux文本文件

2020-11-16 11:10:00

ShellLinux正則表達式

2016-12-28 11:20:31

Pythonre模塊

2021-01-07 11:00:59

Sed文本編輯器Linux

2019-03-21 14:30:15

Linux文本分析命令

2019-11-06 16:40:31

awkLinux文本分析工具
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲综合五月天婷婷 | 成人av资源在线 | 色婷婷国产精品综合在线观看 | 国产有码 | 中文字幕免费在线 | 91精品国产99 | 国产精品免费福利 | 激情欧美日韩一区二区 | 久国产| 求个av网址 | 中文字幕一区二区三区不卡 | 成人精品一区二区三区中文字幕 | 国产亚洲精品久久久久久牛牛 | 好好的日在线视频 | 久久精品国产一区二区电影 | 精品久久久久久一区二区 | 亚洲日韩第一页 | 亚洲色综合 | 亚洲人在线播放 | 精品乱人伦一区二区三区 | 久久久精品综合 | 成人h电影在线观看 | 国户精品久久久久久久久久久不卡 | 国产在线精品一区二区三区 | 国产成人福利在线观看 | 日韩精品亚洲专区在线观看 | 97免费在线观看视频 | 在线播放国产一区二区三区 | 综合色播| 一级二级三级在线观看 | 四虎海外| 国产一区二区精华 | 可以免费看的毛片 | 午夜爱爱毛片xxxx视频免费看 | 综合一区二区三区 | 欧美激情视频一区二区三区免费 | 91精品国产高清久久久久久久久 | 中文字幕视频在线看 | 国产精品久久一区 | 亚洲草草视频 | 亚洲精品视频在线 |