sed

sed 過濾文件改文 ( 行編輯器)
Sed 選項 腳本(地址命令)inputfile(要處理的文件名)
-n 不輸出模式空間內容到屏幕,即不自動打印
-e 多點編輯
-f /PATH/SCRIPT_FILE: 從指定文件中讀取編輯腳本
-r支持使用擴展正則表達式
-i.bak 備份文件并遠處編輯 -i編輯文件不備份
script ‘地址命令’
不給地址: 對全部的所有行處理
單地址:# 指定的行(數字),$最后一行
/pattern/ 被此模式匹配到的每行
地址范圍 : #,#
#,+#
/pat1/,/pat2/
#,/pat1/
~:步進
1~2奇數行
2~2偶數行
編輯命令
d: 刪除模式空間匹配的行,并立即啟用下一輪循環
p:打印當前模式空間內容,追加到默認輸出之后
a [\]text:在指定行后面追加文本 支持使用\n實現多行追加
i [\]text:在行前面插入文本
c [\]text:替換行為單行或多行文本
w /path/somefile: 保存模式匹配的行至指定文件
r /path/somefile:讀取指定文件的文本至模式空間中 匹配到的行后
=: 為模式空間中的行打印行號
!:模式空間中匹配行取反處理

sed工具
?s///:查找替換,支持使用其它分隔符,s@@@,s### ?替換標記:
g: 行內全局替換
p: 顯示替換成功的行
w /PATH/TO/SOMEFILE:將替換成功的行保存至文件中

sed ‘2,5a\ ===’ f2 把f2文件2-5行添加‘空===’
sed -r ‘s/(root)/\1er/g’ /etc/passwd 在/etc/passwd全局搜索root替代為rooter相當于在root后插入er
sed -r ‘s/(root)/admin\1/g’ /etc/passwd在/etc/passwd全局搜索root替代為adminroot相當于在root前面插入admin
ifconfig ens33|sed -r ‘s@.*inet (.*) netmask.*@\1@’|sed -n ‘2p’顯示IP地址

sed ‘/^#<VirtualHost/,/^#</s/#//’ /etc/httpd/conf/httpd.conf|sed -r ‘s@#(Name.*)@\1@’
sed -re ‘s@#(Name.*)@\1@’ -e ‘/^#<VirtualHost/,$s/#//’ /etc/httpd/conf/httpd.conf同上
echo “/etc/sysconfig/network/”|sed -r ‘s@(.*\/)([^/]+\/?$)@\1@”顯示路徑 \2顯示基名

sed示例
?sed ‘2p’ /etc/passwd 打印第二行
?sed –n ‘2p’ /etc/passwd 只打第二行
?sed –n ‘1,4p’ /etc/passwd 只打印第1-4行
?sed –n ‘/root/p’ /etc/passwd 只打印包含root的行
?sed –n ‘2,/root/p’ /etc/passwd 從2行開始 (只打印從第2行到包含root的行)
?sed -n ‘/^$/=’ file 顯示空行行號
?sed –n –e ‘/^$/p’ –e ‘/^$/=’ file 顯示空行并打印行號
?sed ‘/root/a\superman’ /etc/passwd行后 (在包含root的行后面加上字符串)
?sed ‘/root/i\superman’ /etc/passwd 行前
?sed ‘/root/c\superman’ /etc/passwd 代替行 (用字符串代替包含root的行)

?sed ‘/^$/d’ file 刪除空行
?sed ‘1,10d’ file 刪除1-10行
?nl /etc/passwd | sed ‘2,5d’ 顯示行號并刪除2,-5行
?nl /etc/passwd | sed ‘2a tea’ 顯示行號并在第二行后加tea
?sed ‘s/test/mytest/g’ example 搜索test用mytest替代(全文搜索g)
?sed –n ‘s/root/&superman/p’ /etc/passwd 單詞后 {在單詞root后插入superman并打?。?amp;表示前面搜索的字符串root)}
?sed –n ‘s/root/superman&/p’ /etc/passwd 單詞前
?sed -e ‘s/dog/cat/’ -e ‘s/hi/lo/’ pets 多點替換(把dog替換成cat,把hi替換成lo)
?sed –i.bak ‘s/dog/cat/g’ pets 搜索后改文件{(-i).bak備份一份}

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

(0)
張陸祿張陸祿
上一篇 2018-04-15 13:38
下一篇 2018-04-15 14:11

相關推薦

  • CentOS系統啟動/boot/initramfs修復(實驗)

    內核啟動之文件丟失修復

    2018-05-09
  • 網段劃分

    物理上在一個網段,邏輯上不在一個網段 則通訊必須經過路由器 只要不在一個網段就要經過路由器 路由表   由于有類地址之間跨度太大,不利于使用,現在生產環境中使用的是無類地址。 無類地址:網絡ID,主機ID不確定 CIDR:無類域間路由 無類域間路由表示法 IP/網絡ID位數   172.20.0.123 netmask:子網掩碼 32位二…

    Linux筆記 2018-07-02
  • linux一些實用小命令

    linux的哲學思想: 1 一切皆文件2 小型,單一用途的程序3 鏈接程序,共同完成復雜的任務4 避免令人困惑的用戶界面5 配置數據存儲在文本中1Byte=8bit1k=1024Byte1M=1024k1G=1024M1T=1024G1P 1E 1Z 1Y 1D每個漢字占2個字節(Byte) 每個英文字母占1字節(Byte)在網絡配置文件中修改網絡開機自啟項…

    Linux筆記 2018-03-31
  • Blog Day 1:在Windows下搭建Linux學習環境

    By:Alvin Lin
    No:M30-43
    Date:2018-04-01

    -目錄-
    第零部分:安裝VMware Workstations 12 虛擬機軟件程序(Windows平臺)
    第一部分:創建虛擬機
    第二部分:安裝CentOS6.9
    第三部分:安裝CentOS7.4

    2018-04-01
  • 網絡通信安全基礎、openssl、openssh

    數據安全分為: 保密性:數據保密性、隱私性 完整性:數據完整性、系統完整性 可用性:數據有效性   安全攻擊分為: 被動攻擊:竊聽 主動攻擊:偽裝、重放、消息篡改、拒絕服務   安全機制: 加密、數字簽名、訪問控制、數據完整性、認證交換機制、流量填充、路由控制、公證   安全服務: 認證: 訪問控制: 數據保密性:連接、無連接、…

    Linux筆記 2017-12-06
  • linux下練習及答案

    1.顯示當前時間,格式:201-06-18 ?10:20:30 2.顯示前天是星期幾 3.設置當前日期為2019-08-07 06:05:10 4、在本機字符終端登錄時,除顯示原有信息外,再顯示當前登錄終端號,主機名和當前時間 6.今天19:30自動關機,并提示用戶 7.顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間出現至少一位數字的文件或目錄 …

    2018-03-31
欧美性久久久久