文本處理工具sed

timg
sed:是行編輯器是一款流編輯器,是一門語言,;比grep強大,不光能看還能改,你值得擁有。
地址定界:對第幾行進行操作
不給地址:對全文處理
單地址
#指定的行,$最后一行
/字符,正則/:被此處模式匹配到的每一行
地址范圍:
#,#:第幾行到第幾行
#,+#:從第#行往后加#行(包括#,)
/a字符串/,/b字符串/:從a匹配到b(如果找不到b就會從a打印到最后一行)
#,/字符串/:從指定行匹配到指定的字符串
步進
1~2:匹配奇數行
2~2:匹配偶數行
編輯命令:
d: 刪除模式空間匹配的行,并立即啟用下一輪循環
p:打印當前模式空間內容,追加到默認輸出之后
a [\]text:在指定行后面追加文本
支持使用\n實現多行追加
i [\]text:在行前面插入文本
c [\]text:替換行為單行或多行文本
w /path/somefile: 保存模式匹配的行至指定文件
r /path/somefile:讀取指定文件的文本至模式空間中
匹配到的行后
=: 為模式空間中的行打印行號
!:模式空間中匹配行取反處理
常用選項:
-n:不輸出模式空間內容到屏幕,即不自動打印
-e: 多點編輯
-f:/ PATH/SCRIPT_FILE : 從指定文件中讀取編輯腳本
-r: 支持使用擴展正則表達式
-i.bak: 備份文件并原處編輯
s///:查找替換,支持使用其他分隔符,s@@@,s###
替換標記
g:行內全局替換
p:顯示替換成功的行
w /PATH/TO/SOMEFILE:將替換成功的行保存到文件中
高級編輯命令
P:打印模式空間開端至\n內容,并追加到默認輸出之前
h: 把模式空間中的內容覆蓋至保持空間中
H:把模式空間中的內容追加至保持空間中
g: 從保持空間取出數據覆蓋至模式空間
G:從保持空間取出內容追加至模式空間
x: 把模式空間中的內容與保持空間中的內容進行互換
n: 讀取匹配到的行的下一行覆蓋至模式空間
N:讀取匹配到的行的下一行追加至模式空間
d: 刪除模式空間中的行
D:如果模式空間包含換行符,則刪除直到第一個換行符的模式空間中的文本,并不會讀取新的輸入行,而使用合成的模式空間重新啟動循環。如果模式空間不包含換行符,則會像發出d命令那樣啟動正常的新循環
sed有模式空間和保持空間
模式空間(pattern space):處理完的
保持空間(hold space):沒有處理完的
打印偶數行:
sed – ‘n;p’ 文件名
sed – ‘2~2p’ 文件名

查看光盤中的rpm包CPU支持種類
ls /media/Packages/ |sed -r ‘s/(.*)\.rpm$/\1/’ |sed -r ‘s/.*\.([^.]+)/\1/’ |sort |uniq -c
ls /media/Packages/ |sed -r ‘s/.*\.(.*)\.rpm$/\1/’ |sort |uniq -c
ls *.rpm |rev |cut -d. -f 2 |rev |sort |uniq -c

合并奇數行和偶數行
seq 10 |sed ‘N;s@\n@ @’
seq 10 |xargs -n2

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/96558

(0)
老司機丨快上車老司機丨快上車
上一篇 2018-04-19 13:41
下一篇 2018-04-19

相關推薦

  • 網絡屬性配置第三種方式——修改配置文件

    網絡屬性配置第三種方式——修改配置文件 IP ,MASK,GW,DNS相關的配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0 路由相關的配置文件:/etc/sysconfig/network-scripts/route-enth0(這個文件默認不存在,需要手動去創建) (1)/etc/sys…

    Linux筆記 2018-05-06
  • 加密與安全

    加密與安全 SSH端口轉發 SSH 會自動加密和解密所有 SSH 客戶端與服務端之間的網絡數據。但是,SSH 還能夠將其他 TCP 端口的網絡數據通過 SSH 鏈接來轉發,并且自動提供了相應的加密及解密服務。這一過程也被叫做“隧道”(tunneling),這是因為 SSH 為其他 TCP 鏈接提供了一個安全的通道來進行傳輸而得名。例如,Telnet,SMTP…

    Linux筆記 2018-06-11
  • 模擬網絡訪問解析

    搭建局域網DNS解析,具體實現功能如下圖 注:該測試只有正向解析 項目流程圖 1. 項目前準備關閉防火墻和SELINUX,配置網絡 ①開啟8臺機器 ②關閉防火墻及selinux iptables -vnL #查看防火墻狀態 systemctl stop firewall #關閉防火墻 getenforce #查看SELinux狀態 setenforce 0 …

    2018-06-04
  • liunx基礎

    在shell中可執行的命令有兩類: 執行外部命令hash 緩存表 ? hash 常見用法 :

    Linux筆記 2018-04-01
  • 第二周

    反向單引號 ` `:執行能力強,可以執行命令 [等價于$()]單引號 ‘ ’:只顯示字符雙引號 “ ”:識別變量,不識別命令花括號{ }: 里面內容互相組合 打印重復字符串的簡化形式echo file{1,3,5} 顯示為file1.3.5rm -f file{1,3,5} 刪除file1.3.5echo file{1..10} 顯示為file1&#8230…

    Linux筆記 2018-07-29
  • inode 表

    cp和inode :                    

    Linux筆記 2018-04-01
欧美性久久久久