linux文字處理命令

2021-09-25 13:29:14 字數 1994 閱讀 7133

sed、grep、find、xargs

1. 替換檔案內容
sed -i "s/test01/test02/g" `grep -rl test01 /home/forum`
說明:在/home/forum目錄下,grep出含有test01字串的檔案,然後把test01替換成test02

2. sed替換換行符

參考:

sed命令從文字流中讀取一行命令到模式空間進行相應處理,因此在處理換行時,有些特殊。

echo "a,b,c,d" | sed 's/,/\n/g' #將字串a,b,c,d中的逗號替換成換行符

echo "a,b,c,d" | sed 's/,/\n/g' | sed 's/\n/,/g' # 後面這個sed沒有生效

說明:sed讀取一行時,會先把換行符去掉,命令處理完後,再加上。所以無法使用上面這個命令(sed 's/\n/,/g')進行換行符替換。

使用下面的命令,可以將換行符進行替換:

sed ':label;n;s/\n/,/;b label' filename

sed ':label;n;s/\n/,/;t label' filename

說明:該命令可以實現將文字中的所有換行進行替換,上面例子中,將換行替換成逗號。

:label; 這是乙個標籤,用來實現跳轉處理,名字可以隨便取(label),後面的b label就是跳轉指令

n; n是sed的乙個處理命令,追加文字流中的下一行到模式空間進行合併處理,因此是換行符可見

s/\n/:/; s是sed的替換命令,將換行符替換為冒號

b label 或者 t label b 或t 是sed的跳轉命令,跳轉到指定的標籤處

實際應用eg:

echo "a,b,c,d" | sed 's/,/\n/g' | sed ':x;n;s/\n/,/g;b x' 

#後面這個sed可以將換行替換成','

1. grep 引數
-l 表示只輸出包含匹配字元的檔名
1, 排除查詢某類檔案
find . ! -name "*.svn-base" | xargs grep g6y8lqv9zjgj --col
說明: 找出當前目錄中字尾名不為.svn-base的檔案,然後從這些檔案中查詢含有字串g6y8lqv9zjgj 的檔案。

2.按指定目錄深度查詢

find . -maxdepth 1 -name '*' #只在當前目錄查詢

find . -naxdepth 1 type f #查詢當前目錄中的檔案

說明:maxdepth後面的引數值,表示距當前目錄指定的深度,1表示當前目錄,2表示一級子目錄,以此類推。如果沒有指定maxdepth引數,find會查詢當前目錄及其所有子目錄下的檔案。

該命令主要功能是:從輸入中構建和執行shell命令。

xargs預設以空白字元 (空格, tab, 換行符) 來分割記錄

1. 與find命令結合

find -name '*.log' | xargs rm #找到當前目錄及其子目錄中的.log檔案,然後刪除

find -name '*.log' -print0 | xargs -0 rm #作用同上

說明:-print0 表示 find命令在列印出乙個檔名之後接著輸出乙個 null 字元 ('') 而不是換行符, 然後再告訴 xargs 也用 null 字元來作為記錄的分隔符

2. xargs -i 引數

find . -name '*.bak' | xargs -i cp {} ../  #find找到字尾為.bak的檔案,然後將這些檔案cp到上一層目錄
說明:xargs後面加上-i引數,直接用{}代替管道之前的標準輸出的內容。

參考:

Linux文字處理命令

4 linux文字處理命令sort命令 sort命令的功能是對檔案中的各行進行排序。sort命令有許多非常實用的選項,這些選項最初是用來對資料庫格式的檔案內容進行各種排序操作的。實際上,sort命令可以被認為是乙個非常強大的資料管理工具,用來管理內容類似資料庫記錄的檔案。sort命令將逐行對檔案中的...

Linux文字處理命令

1.tac 它和cat是反的,倒著輸出,先輸出最後一行,接著是倒數第二行,最後輸出的是第一行 2.rev reverse 先輸出最後乙個字元,接著是倒數第二個字元,最後才是第乙個字元,下面這個命令可以把輸入全部倒過來 tac f.txt rev 3.head 只顯示文字的開頭幾行,比如 head 2...

linux 文字處理命令

cut 顯示切割的行資料 f 選擇顯示的列 s 不顯示沒有分隔符的行 d 自定義分隔符 sort 排序檔案的行 n 按數值排序 r 倒序 t 自定義分隔符 k 選擇排序列 u 合併相同行 f 忽略大小寫 sed options addresscommand file n 靜默模式,不再預設顯示模式空...