1. 程式人生 > 其它 >linux三劍客之sed 流媒體編輯器

linux三劍客之sed 流媒體編輯器

目錄

linux文字處理命令

# sort 命令  可以把檔案的內容加以排序

	格式是: 
    	sort + [檔名]
		'排序默是按照第一個字母排序的 而且是同類和同類之間排序 排序的大小是按照ASCII碼來的'
        
	# sort的引數
    	
        sort  -n + [檔名] # 依照數值的大小來進行排序

        sort  -r + [檔名] # 反向排序

        sort  -k2 + [檔名] # 以第幾列進行排序

        sort  -t' ' + [檔名] # 指定分割符 預設是以空格作為分割符

        
        
# uniq 命令	用於去重 不過只能去重相鄰的 所以一般和sort命令一塊使用

	格式為:
    	uniq + [檔名]
        
	# uniq 引數

    uniq -c + [檔名] # 在列旁邊顯示該行出現的次數

    uniq -d + [檔名] # 僅顯示重複出現的內容

    uniq -u + [檔名] # 僅顯示出現過一次的內容
    
    
# cut命令 用來顯示行中的指定部分 刪除檔案中的指定字元

	格式為:
    	cut -d '指定分割符' -f'指定內容' + [檔名]
        
	# cut 引數

    -d # 指定欄位的分隔符 預設分割符為 'TAB'
    -f # 顯示指定欄位內容
    
    
    

# tr命令 替換或刪除命令

	格式:
    	cat + [檔名] | tr + [需要替換內容] + [替換內容]
        '替換字串是一一對應提替換的'
        
	# tr 引數
    	-d 刪除字元
        格式 : cat + [檔名] | tr -d + [需要刪除內容] 




# wc命令  統計和計算數字


	# wc 引數
	
        wc -c + [檔名] # 統計檔案中的位元組數

        wc -l + [檔名] # 統計檔案的行數

        wc -w + [檔名] # 統計檔案中單詞的個數 單體是指連一塊的字串 預設是空白字元作為分隔符

三劍客之sed命令

# sed是linux中流媒體編輯器

	 # 三劍客各自的功能
    	 
        grep  是用來過濾文字
        
        sed   是用來修改文字
        
        awk   是用來處理文字
        
        
# sed的格式:

	sed + [引數] + '處理規則' + [操作物件]
    
    
# sde 引數

    -e 允許多項編輯  例: sed -e '1d' -e '3d' + [檔名]

    -n 取消預設輸出	就是把顯示給取消了

    -i 就地編輯		就是把展示的內容直接寫入檔案中

    -r 支援拓展正則	普通正則預設支援
    例: sed -r '/123/d' + [檔名]

    -f 指定某個檔案類寫入的正則規則 然後通過-f引數來操作某檔案
    例: sde -f + [指定的正則] + [需要操作的檔案]



    
# sed 的編輯模式
	
    d	刪除
    
    p	列印
    
    a	在當前行後新增一行或者多行  
    	例: sed '5a666' + [檔名]   在第五行之後新增666
    
    c	用新的文字修改或者替換當前行
    	例:sed '5c666' + [檔名]	把第五行內容修改為666
        
	i	單獨使用時在當前行之前插入文字
    	例:sed '5i666' + [檔名]	把第5行插入666
        
	r	在檔案當中讀內容 病例區插入到指定行的後一行
    	例:sed '3r 1.txt' + 2.txt	代表把1.txt全部內容插入到2點txt的第四行
        
	w	將指定行寫入檔案 	清空寫入檔案 並且把指定檔案內容全部寫入到寫入檔案中
    	例:sed '2w 1.txt' + 2.txt	將2.txt的內容寫入到1.txt
        
	y	將字元轉換成另一個字元
    
    	例:sed '2y/a/A/' 2.txt	把2.txt中的小寫a全部替換成大寫A
        
	s	減字串轉換成另一個字串  s模式是放在正則的前面 
    
    	例:sed 's/10/50/' 2.txt 把2.txt的11行替換成了個50 每行只會替換一次
        
	g	全部執行 配合s使用
    
    	例:sed 's/10/50/g' 2.txt  把2.txt的所有10都替換成個50 	g本身是沒有替換功能的
        
	i	和s模式配合使用時 忽略大小寫
    
    	例:sed 's/10/50/gi' 2.txt  把2.txt的所有10都替換成個50 並且忽略大小寫
    
    	
       
        
# sde 定位 

    1.數字定位法	# 指定行號

        例: sed '3d' + [檔名] 
        	sed '2,3d' + [檔名]  代表定位2到3行 
        
    2.正則定位法
    
        例:sed '/g/d' + [檔名] 
       	    sed '^/g/d' + [檔名]  g開頭的都刪了
        
    3.數字和正則定位法
    
        例:sed '3,/^g/d' + [檔名]  第三行到g開頭的都刪除
           
    4.正則正則定位法
    
    	例: sed '/^g/,/^j/d' + [檔名]  	g開頭的到j開頭的都刪除