91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux Shell文本處理神器合集:15個工具+實戰(zhàn)例子,效率直接翻倍

jf_44130326 ? 來源:Linux1024 ? 2026-02-03 15:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Linux系統(tǒng)中,文本是數(shù)據(jù)交互的通用語言”——日志文件、配置文件、數(shù)據(jù)報表、程序輸出幾乎都以文本形式存在。手動編輯文本不僅繁瑣,還容易出錯,而掌握Shell文本處理工具,能讓你用幾行命令完成批量篩選、數(shù)據(jù)提取、統(tǒng)計分析,甚至復(fù)雜的文本清洗。

今天就帶你盤點15個最常用的Linux文本處理工具,每個工具都附核心作用、常用選項和實戰(zhàn)場景,從基礎(chǔ)到進階,看完就能直接上手!

wKgZPGkam2mAbPkTAAAN53XbQro255.png

一、基礎(chǔ)工具:文本操作的基石

這類工具是文本處理的入門必備,解決最常見的查看、統(tǒng)計、拼接需求,用法簡單但高頻使用。

1.cat:文本拼接與查看的瑞士軍刀

核心作用:查看文件內(nèi)容、拼接多個文件、創(chuàng)建簡單文本文件。

常用場景:快速查看短文件、合并日志片段、往文件追加內(nèi)容。

實戰(zhàn)例子

# 1.查看單個文件內(nèi)容

cat /var/log/xsc_syslog

# 2.合并2個日志文件到新文件

cat xsc_access.log xsc_error.log > xsc_combined.log

# 3.往文件末尾追加內(nèi)容(需謹慎,避免覆蓋)

cat >> xsc_config.conf << EOF

#新增配置項

timeout=300

EOF

2.head/tail:文件首尾內(nèi)容的截取器

核心作用head查看文件開頭(默認前10行),tail查看文件末尾(默認后10行),尤其適合大文件(如日志)。

常用選項

?-n N:指定查看N行(如-n 20查看前/20行);

?tail -f:實時跟蹤文件更新(日志實時監(jiān)控必備)。

實戰(zhàn)例子

# 1.查看nginx配置文件前15行(注釋和全局配置通常在開頭)

head -n 15 /etc/nginx/xsc_nginx.conf

# 2.實時監(jiān)控tomcat日志(跟蹤最新錯誤)

tail -f /usr/local/tomcat/logs/xsc_catalina.out

# 3.查看文件最后5行(日志的最新記錄)

tail -n 5 /var/log/xsc_auth.log

3.wc:文本統(tǒng)計的計算器

核心作用:統(tǒng)計文件的行數(shù)、單詞數(shù)、字節(jié)數(shù),是數(shù)據(jù)匯總的基礎(chǔ)工具。

常用選項

?-l:僅統(tǒng)計行數(shù)(最常用,比如統(tǒng)計日志有多少條錯誤);

?-w:統(tǒng)計單詞數(shù);

?-c:統(tǒng)計字節(jié)數(shù);

?-m:統(tǒng)計字符數(shù)(支持中文等多字節(jié)字符)。

實戰(zhàn)例子

# 1.統(tǒng)計當前目錄下所有.sh腳本的總行數(shù)(代碼量估算)

wc -l xsc_*.sh

# 2.統(tǒng)計日志中包含"ERROR"的行數(shù)(錯誤數(shù)量統(tǒng)計)

grep "ERROR" xsc_app.log | wc -l

# 3.統(tǒng)計配置文件的字符數(shù)(檢查文件是否完整)

wc -m xsc_config.ini

二、篩選工具:精準定位文本內(nèi)容

這類工具幫你從海量文本中撈取關(guān)鍵信息,避免逐行查找的低效。

4.find:文件搜索的定位雷達

核心作用:按路徑、名稱、類型、時間、權(quán)限等條件搜索文件,是找文件的第一選擇。

常用選項

?-name "pattern":按文件名匹配(支持通配符,如xsc_*.log匹配所有帶前綴的日志文件);

?-type f/d/l:按文件類型篩選(f =普通文件,d =目錄,l =軟鏈接);

?-mtime -N:按修改時間篩選(-7表示最近7天內(nèi)修改,+30表示30天前修改);

?-size +N:按文件大小篩選(+10M表示大于10MB,-50k表示小于50KB)。

實戰(zhàn)例子

# 1./var/log目錄下找所有帶xsc_前綴的.log文件(日志文件匯總)

find /var/log -name "xsc_*.log" -type f

# 2.找當前目錄下最近3天修改過的帶xsc_前綴的.sh腳本(定位近期編輯的腳本)

find . -name "xsc_*.sh" -type f -mtime -3

# 3.找大于100MB的帶xsc_前綴的日志文件(清理大文件前定位)

find /var/log -name "xsc_*.log" -type f -size +100M

5.grep:文本內(nèi)容的搜索偵探

核心作用:按正則表達式匹配文本內(nèi)容,從文件或輸出中篩選關(guān)鍵信息(如日志中的錯誤、配置中的參數(shù))。

常用選項

?-i:忽略大小寫(如grep -i "error"匹配ERROR/Error/error);

?-n:顯示匹配行的行號(定位具體位置);

?-v:反向匹配(顯示不包含指定內(nèi)容的行,如grep -v "#"過濾注釋);

?-r:遞歸搜索目錄下所有文件(如grep -r "password" /etc/);

?-c:僅統(tǒng)計匹配行數(shù)(如grep -c "ERROR" xsc_app.log)。

實戰(zhàn)例子

# 1.nginx日志中找包含"404"的請求(定位頁面不存在的鏈接)

grep "404" /var/log/nginx/xsc_access.log

# 2.過濾配置文件中的注釋和空行(查看有效配置)

grep -v -E "^#|^$" /etc/xsc_sysctl.conf

# 3.遞歸搜索項目目錄中包含"TODO"的帶xsc_前綴的代碼文件(定位待辦事項)

grep -r -n "TODO" /home/project/xsc_*.c

6.cut:按列提取文本的手術(shù)刀

核心作用:按列分割文本(默認以制表符分隔,可指定分隔符),提取指定列的內(nèi)容,適合處理CSV、日志等結(jié)構(gòu)化文本。

常用選項

?-d "sep":指定分隔符(如-d ","處理CSV文件,-d ":"處理/etc/passwd);

?-f N:提取第N列(多列用逗號分隔,如-f 1,3提取第1和第3列);

?-c N:按字符位置提取(如-c 1-5提取前5個字符)。

實戰(zhàn)例子

# 1./etc/passwd中提取用戶名和登錄Shell(第1列和第7列,冒號分隔)

cut -d ":" -f 1,7 /etc/xsc_passwd

# 2.處理CSV文件,提取姓名和年齡(第2列和第3列,逗號分隔)

cut -d "," -f 2,3 xsc_user.csv

# 3.提取日志中前10個字符(通常是時間戳)

cut -c 1-10 xsc_app.log

7.paste:多文件文本的拼接膠

核心作用:將多個文件的內(nèi)容按列拼接(默認以制表符分隔),適合合并結(jié)構(gòu)化數(shù)據(jù)。

常用選項

?-d "sep":指定列分隔符(如-d ","合并為CSV格式);

?-s:按行拼接(將單個文件的多行合并為一行,用分隔符連接)。

實戰(zhàn)例子

# 1.合并姓名文件和年齡文件(xsc_name.txt每行對應(yīng)xsc_age.txt每行)

paste -d "," xsc_name.txt xsc_age.txt > xsc_user_info.csv

# 2.將多列日志合并為一行(用空格分隔)

paste -s -d " " xsc_log1.log xsc_log2.log xsc_log3.log

三、處理工具:文本清洗與轉(zhuǎn)換的利器

這類工具幫你完成文本的加工”——去重、排序、替換、刪除,解決數(shù)據(jù)不規(guī)整的問題。

8.sort:文本排序的整理師

核心作用:按指定規(guī)則對文本行排序,支持數(shù)字、字母、日期等排序方式,常與uniq配合去重。

常用選項

?-n:按數(shù)字排序(默認按字符排序,如“10”會排在“2”前面,-n可修正);

?-r:反向排序(從大到小/ZA);

?-k N:按第N列排序(需指定分隔符,如-t ":" -k 3n按第3列數(shù)字排序);

?-u:去重(等價于sort | uniq,但效率更高)。

實戰(zhàn)例子

# 1.按數(shù)字排序(統(tǒng)計結(jié)果排序,如日志錯誤次數(shù))

sort -n xsc_error_count.txt

# 2.按第2列數(shù)字反向排序(處理CSV文件,第2列是分數(shù))

sort -t "," -k 2nr xsc_score.csv

# 3.排序并去重(統(tǒng)計唯一IP

sort -u xsc_access_ip.txt

9.uniq:文本去重的過濾器

核心作用:去除連續(xù)重復(fù)的行(注意:非連續(xù)重復(fù)需先sort排序),還能統(tǒng)計重復(fù)次數(shù)。

常用選項

?-c:統(tǒng)計每行的重復(fù)次數(shù)(如uniq -c顯示次數(shù)+內(nèi)容);

?-d:僅顯示重復(fù)的行;

?-u:僅顯示不重復(fù)的行。

實戰(zhàn)例子

# 1.統(tǒng)計日志中每個IP的訪問次數(shù)(先排序再去重統(tǒng)計)

sort xsc_access.log | cut -d " " -f 1 | uniq -c

# 2.顯示重復(fù)的配置項(定位冗余配置)

sort xsc_config.conf | uniq -d

# 3.顯示僅出現(xiàn)一次的內(nèi)容(定位唯一數(shù)據(jù))

sort xsc_data.txt | uniq -u

10.tr:字符轉(zhuǎn)換的魔術(shù)師

核心作用:字符替換、刪除、壓縮,支持單字符或字符集的轉(zhuǎn)換,語法簡潔但功能強大。

常用選項

?tr "a" "b":將所有字符a替換為b;

?tr "[]" "[]":小寫轉(zhuǎn)大寫(反之同理);

?tr -d "a":刪除所有字符a;

?tr -s " ":壓縮連續(xù)的空格為單個空格(處理格式混亂的文本)。

實戰(zhàn)例子

# 1.將日志中的小寫字母轉(zhuǎn)為大寫(方便統(tǒng)一匹配)

cat xsc_app.log | tr "[]" "[]"

# 2.刪除文本中的所有標點符號(清理純文本)

cat xsc_article.txt | tr -d "[]"

# 3.壓縮連續(xù)空格和換行(將多行文本整理為緊湊格式)

cat xsc_messy.txt | tr -s " n"

11.xargs:命令參數(shù)的轉(zhuǎn)換器

核心作用:將標準輸入(如find的輸出)轉(zhuǎn)換為命令參數(shù),解決參數(shù)過長問題(如rm $(find ...)可能報錯,find ... | xargs rm更安全)。

常用選項

?-n N:每次傳遞N個參數(shù)給命令(如-n 5每次處理5個文件);

?-I {}:指定占位符(替換為輸入的每個參數(shù),適合復(fù)雜命令)。

實戰(zhàn)例子

# 1.批量刪除找到的臨時文件(避免參數(shù)過長)

find . -name "xsc_*.tmp" -type f | xargs rm -f

# 2.批量修改文件后綴(將xsc_*.txt改為xsc_*.md

find . -name "xsc_*.txt" -type f | xargs -I {} mv {} {}.md

# 3.批量統(tǒng)計.c文件的行數(shù)(每次處理2個文件)

find . -name "xsc_*.c" -type f | xargs -n 2 wc -l

四、進階工具:復(fù)雜文本處理的王牌

這類工具支持腳本化操作,能處理更復(fù)雜的文本邏輯——替換特定行、條件篩選、數(shù)據(jù)計算等。

12.sed:文本流編輯的瑞士軍刀

核心作用:按行處理文本(流編輯),支持替換、刪除、插入、追加等操作,適合批量修改文本。

常用語法(基本格式:sed '命令'文件):

?s/old/new/g:全局替換(將old替換為newg表示全局,不加g僅替換每行第一個);

?d:刪除指定行(如sed '3d' file刪除第3行,sed '/ERROR/d' file刪除包含ERROR的行);

?i:在指定行前插入(如sed '2i #新增注釋' file在第2行前插入注釋);

?-i:直接修改文件(建議加備份,如-i.bak保留原文件為file.bak)。

實戰(zhàn)例子

# 1.全局替換配置文件中的"old_ip""new_ip"(備份原文件)

sed -i.bak 's/old_ip/new_ip/g' xsc_config.conf

# 2.刪除日志中的空行和注釋行(清理日志)

sed -e '/^$/d' -e '/^#/d' xsc_app.log

# 3.在第5行后追加一行配置(如新增timeout

sed '5a timeout=300' xsc_server.conf

13.awk:文本分析的編程語言

核心作用:按列處理文本,支持條件判斷、循環(huán)、計算,能完成復(fù)雜的數(shù)據(jù)分析(如統(tǒng)計、過濾、格式化),堪稱文本處理中的Python。

基本語法awk '條件{動作}'文件(默認以空格/制表符分隔列,$N表示第N列,$0表示整行)。

常用選項

?-F "sep":指定分隔符(如-F ","處理CSV,-F ":"處理/etc/passwd);

?-v var=val:定義變量(如-v sum=0定義求和變量)。

實戰(zhàn)例子

# 1.統(tǒng)計日志中每個IP的訪問次數(shù)(等價于sort+cut+uniq,但更簡潔)

awk '{ip[$1]++} END{for(i in ip) print i, ip[i]}' xsc_access.log

# 2.篩選CSV文件中分數(shù)大于80的行(第3列是分數(shù))

awk -F "," '$3 > 80 {print $2, $3}' xsc_score.csv

# 3.計算文件第2列的總和(如統(tǒng)計所有文件的大?。?/span>

awk '{sum += $2} END{print "Total size:", sum, "KB"}' xsc_file_size.txt

14.diff:文件對比的找茬專家

核心作用:比較兩個文件的差異,顯示不同的行,常用于版本對比、配置變更檢查。

常用選項

?-u:生成統(tǒng)一格式的差異(便于閱讀和打補丁,diff -u old.conf new.conf);

?-r:遞歸比較目錄下所有文件(如diff -r dir1 dir2)。

實戰(zhàn)例子

# 1.比較兩個配置文件的差異(查看修改內(nèi)容)

diff -u xsc_old_nginx.conf xsc_new_nginx.conf

# 2.遞歸比較兩個項目目錄的文件差異(定位代碼變更)

diff -r /home/project/xsc_v1 /home/project/xsc_v2

15.patch:文件補丁的修復(fù)師

核心作用:根據(jù)diff生成的差異文件(補?。?,更新舊文件到新狀態(tài),常用于代碼更新、配置同步。

常用語法patch舊文件 補丁文件

實戰(zhàn)例子

# 1.diff生成的補丁更新舊配置文件

diff -u xsc_old.conf xsc_new.conf > xsc_conf.patch#生成補丁

patch xsc_old.conf xsc_conf.patch #應(yīng)用補丁

# 2.撤銷補?。ɑ謴?fù)到原文件)

patch -R xsc_old.conf xsc_conf.patch

五、工具組合實戰(zhàn):1+1>2的效率技巧

單個工具能力有限,但組合起來能解決90%的復(fù)雜文本問題,以下是3個高頻組合場景:

場景1:日志錯誤分析

需求:查找最近7天修改的nginx日志,統(tǒng)計其中“500錯誤IP及其出現(xiàn)次數(shù),按次數(shù)降序排列。

命令組合

find /var/log/nginx -name "xsc_access.log*" -type f -mtime -7

| xargs grep " 500 "

| awk '{print $1}'

| sort | uniq -c

| sort -nr

拆解find找日志xargs grep500錯誤awkIP→sort+uniq統(tǒng)計次數(shù)sort -nr按次數(shù)降序。

場景2CSV數(shù)據(jù)清洗

需求:處理用戶CSV文件,篩選年齡大于25的用戶,提取姓名和郵箱,按姓名首字母排序,去重后保存為新文件。

命令組合

cut -d "," -f 2,3,5 xsc_user.csv #提取姓名(2)、年齡(3)、郵箱(5

| awk -F "," '$2 > 25 {print $1 "," $3}' #篩年齡>25,保留姓名+郵箱

| sort -t "," -k 1 #按姓名排序

| uniq #去重

> xsc_filtered_user.csv

場景3:批量文件處理

需求:在項目目錄中找所有.c文件,刪除其中的“TODO”注釋行,備份原文件。

命令組合

find /home/project -name "xsc_*.c" -type f

| xargs sed -i.bak '/TODO/d'

拆解find.c文件xargs sed刪除TODO行,-i.bak備份原文件。

六、總結(jié):文本處理的核心思維

Linux文本處理的精髓在于管道(|+組合”——用管道將工具串聯(lián),讓前一個工具的輸出作為后一個工具的輸入,就能把復(fù)雜任務(wù)拆解成多個簡單步驟。

?「找文件」用find,「找內(nèi)容」用grep;

?「按列處理」用cut/awk,「排序去重」用sort/uniq;

?「批量修改」用sed/xargs,「復(fù)雜計算」用awk

建議從日常場景入手(比如分析日志、整理數(shù)據(jù)),慢慢積累自己的命令模板。熟練后,你會發(fā)現(xiàn):原來用Shell處理文本,比打開Excel或?qū)?/span>Python腳本快得多!


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5198

    文章

    20435

    瀏覽量

    333901
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11756

    瀏覽量

    218997
  • Shell
    +關(guān)注

    關(guān)注

    1

    文章

    375

    瀏覽量

    25372
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    詳解Linux Shell文本處理工具

      今天給大家分享日常工作中常用到的shell文本處理工具,可以說是史上最全了,大家掌握住這些工具,可以在日常運維工作中起到事半功倍的作用!
    發(fā)表于 10-27 09:19 ?822次閱讀

    Linux Shell腳本入門到實戰(zhàn)詳解

    Linux Shell腳本入門到實戰(zhàn)詳解
    發(fā)表于 02-17 15:03 ?1105次閱讀

    使用 Linux/Unix 進行文本處理

    使用 Linux/Unix 進行文本處理正則表達式 翻譯領(lǐng)域不乏讓人摸不著頭腦的詞匯,比如"句柄"、"套接字"、"魯棒性"。當然
    發(fā)表于 11-24 15:39

    Python人工智能學(xué)習(xí)工具包+入門與實踐資料集錦

    本資料的主要內(nèi)容詳細介紹的是Python工具包合集包括了:網(wǎng)頁爬蟲工具集,文本處理工具集,Python科學(xué)計算工具包,Python機器學(xué)習(xí)和數(shù)據(jù)挖掘
    發(fā)表于 11-22 14:46

    shell文本處理方法是什么

    shell文本處理三劍客—grep
    發(fā)表于 05-27 12:32

    易語言-文本處理

    易語言是一門以中文作為程序代碼編程語言學(xué)習(xí)例程:易語言-文本處理
    發(fā)表于 06-06 17:43 ?1次下載

    Python網(wǎng)頁爬蟲,文本處理,科學(xué)計算,機器學(xué)習(xí)和數(shù)據(jù)挖掘工具

    本文檔的主要內(nèi)容詳細介紹的是Python工具包合集包括了:網(wǎng)頁爬蟲工具集,文本處理工具集,Python科學(xué)計算工具包,Python機器學(xué)習(xí)和數(shù)據(jù)挖掘
    發(fā)表于 09-07 17:14 ?40次下載
    Python網(wǎng)頁爬蟲,<b class='flag-5'>文本處理</b>,科學(xué)計算,機器學(xué)習(xí)和數(shù)據(jù)挖掘<b class='flag-5'>工具</b>集

    shell編程100實用例子分享

    shell編程100實用例子分享
    發(fā)表于 01-25 15:39 ?5次下載

    文本處理技巧之正則表達式

    在LabVIEW開發(fā)過程中,有很多地方都需要處理文本數(shù)據(jù),比如數(shù)據(jù)通訊、報表生成、協(xié)議解析、文件I/O、界面交互等,那有沒有一工具可以幫助我們快速
    的頭像 發(fā)表于 03-07 10:24 ?5474次閱讀

    linux命令行與shell編程實戰(zhàn)

    。 Shell編程基礎(chǔ):學(xué)習(xí)Shell腳本的基本語法和結(jié)構(gòu),如變量、數(shù)組、函數(shù)、控制結(jié)構(gòu)等。通過編寫Shell腳本,可以自動化執(zhí)行一系列操作,減少重復(fù)工作,提高工作效率。
    的頭像 發(fā)表于 11-08 10:57 ?1560次閱讀

    單日獲客成本超20萬,國產(chǎn)大模型開卷200萬字以上的長文本處理

    更精準的推理和高并發(fā)流量以外,似乎已經(jīng)沒有太多值得廠商大肆宣傳的特性了,直到最近超長文本處理的爆火。 ? 國產(chǎn)大模型的新卷法,長文本處理 ? 當下將大模型長文本處理炒熱的,無疑是來自月之暗面的Kimi。作為去年發(fā)布的大模型,Ki
    的頭像 發(fā)表于 03-27 00:53 ?4696次閱讀
    單日獲客成本超20萬,國產(chǎn)大模型開卷200萬字以上的長<b class='flag-5'>文本處理</b>

    Linux中cut命令的實用示例

    Linux command cut 用于文本處理。您可以使用此命令通過選擇列從文件中提取部分文本。
    的頭像 發(fā)表于 08-05 15:14 ?1199次閱讀

    如何掌握Linux文本處理

    /from/sed_script: 從指定的文本中讀取處理腳本 -r: 使用擴展正則表達式 sed命令選項 替換標記 g:表示行內(nèi)全面替換 w:表示把行寫入一文件 x:表示互換模式
    的頭像 發(fā)表于 11-10 13:40 ?956次閱讀

    Linux三劍客之Sed:文本處理神器

    關(guān)于linux三劍客 grep,過濾關(guān)鍵字信息數(shù)據(jù)。主要是用于查文本內(nèi)的數(shù)據(jù) sed ,對文本數(shù)據(jù)進行編輯,修改原文件內(nèi)容 awk,對文件數(shù)據(jù)過濾,提取,并且能實現(xiàn),格式化輸出 awk對文件數(shù)據(jù)
    的頭像 發(fā)表于 12-16 15:58 ?1304次閱讀
    <b class='flag-5'>Linux</b>三劍客之Sed:<b class='flag-5'>文本處理</b><b class='flag-5'>神器</b>

    Linux文本處理命令的用法

    Linux 三劍客是(grep,sed,awk)三者的簡稱,熟練使用這三工具可以提升運維效率。Linux 三劍客以正則表達式作為基礎(chǔ),而在
    的頭像 發(fā)表于 04-15 10:22 ?759次閱讀
    <b class='flag-5'>Linux</b>中<b class='flag-5'>文本處理</b>命令的用法