1. 程式人生 > >[CentOS 7系列]sed

[CentOS 7系列]sed

sed

Sed是一種流式編輯器,是針對文檔的行來操作的。它是文本處理中常用的工具,能夠完美的配合正則表達式使用。比起grep/egrep來,功能更加強大。


▌sed命令的基本用法: sed [-nefri] ‘command’ filename


▎常用選項:

-n :只有經過sed 特殊處理的那一行才會被列出來;

-e :可以多點編輯;

-r :sed 的動作支持的脫意;

-i :直接修改讀取的文件內容,而不是輸出到終端。


▎常用命令:

d :刪除對應行;

p :打印。通常會與參數 sed -n協同使用;

s :替換。配合g表示全部替換。




1、查找

1)特殊字符匹配:

[[email protected]
/* */ test1]# sed -n ‘/r.t/‘p passwd operator:x:11:0:operator:/root:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin [[email protected] test1]# sed -n ‘/ro*t/‘p passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin [[email protected] test1]# sed -n ‘/ro*t/‘Ip passwd ##“I”忽略大小寫 root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin Root:x:0:0:Root:/Root:/bin/bash [[email protected]
/* */ test1]# sed -nr ‘/r+at/‘p passwd ##“r”表示脫意 operator:x:11:0:operator:/root:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin [[email protected] test1]# sed -nr ‘/o{2}/‘p passwd root:x:0:0:root:/root:/bin/bash lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin [[email protected]
/* */ test1]# sed -nr ‘/root|login/‘p passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin ...... sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin chrony:x:997:995::/var/lib/chrony:/sbin/nologin


2)打印指定行:

[[email protected] test1]# sed -n ‘3‘p passwd
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[[email protected] test1]# sed -n ‘3,5‘p passwd
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[[email protected] test1]# sed -n ‘20,$‘p passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
[[email protected] test1]# sed -e ‘20,$‘p -e ‘/lib/‘p -n passwd ##單個命令執行多個動作
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin        #同樣的行,第一次#
chrony:x:997:995::/var/lib/chrony:/sbin/nologin        #同樣的行,第二次#


2、刪除

[[email protected] test1]# sed -i ‘10,$‘d passwd     ##刪除第10行到最後一行
[[email protected] test1]# wc -l passwd
9 passwd
[[email protected] test1]# sed -i ‘/root/‘d passwd   ##刪除帶root關鍵詞的行
[[email protected] test1]# grep ‘root‘ passwd


3、替換

[[email protected] test1]# sed ‘1,3s/root/ROOT/‘ passwd
ROOT:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
[[email protected] test1]# sed ‘1,3s/root/ROOT/g‘ passwd    ##“g”表示全部匹配項
ROOT:x:0:0:ROOT:/ROOT:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
......
[[email protected] test1]# sed ‘s/\(root\)\(.*\)\(bash\)/\3\2\1/‘ passwd 
bash:x:0:0:root:/root:/bin/root                             ##調換兩個字符串的位置
bin:x:1:1:bin:/bin:/sbin/nologin
......
[[email protected] test1]# sed -r ‘s#([^:]+):(.*):([^:]+)#\3\2\1#g‘ passwd
/bin/bashx:0:0:root:/rootroot
/sbin/nologinx:1:1:bin:/binbin
/sbin/nologinx:2:2:daemon:/sbindaemon
......
[[email protected] test1]# sed ‘s/[0-9]//g‘ passwd    ##刪除所有數字
root:x:::root:/root:/bin/bash
bin:x:::bin:/bin:/sbin/nologin
daemon:x:::daemon:/sbin:/sbin/nologin
......
[[email protected] test1]# sed -r ‘s/(^root)/#&/g‘ passwd  ##所有root開頭的行註釋掉
#root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
......


以上是sed最簡單的命令使用技巧。學習很容易,熟練很難,平時還是需要多加練習。


本文出自 “亂碼時代” 博客,請務必保留此出處http://juispan.blog.51cto.com/943137/1944588

[CentOS 7系列]sed

相關推薦

[CentOS 7系列]sed

sed Sed是一種流式編輯器,是針對文檔的行來操作的。它是文本處理中常用的工具,能夠完美的配合正則表達式使用。比起grep/egrep來,功能更加強大。▌sed命令的基本用法: sed [-nefri] ‘command’ filename ▎常用選項:-n :只有經過sed 特殊處理的

[CentOS 7系列]grep/sed/awk高級擴展

grep sed awk 在上一帖的實戰中,我們用到了grep的"-Po"的用法。首先,我們來看看這幾個參數的含義: -P, --perl-regexp Interpret PATTERN as a Perl regular expression.

[CentOS 7系列]配置IP地址

網絡服務 ip地址 操作系統 接口 網卡 1、初次登陸操作系統時,網卡接口是沒有IP地址的。使用dhclient命令自動獲取IP地址。 關閉dhcp方式獲取地址服務,可用加參數-r2、使用ip add和ifconfig命令查看接口地址信息。 ifconfig命令默認沒有安裝。需要安

[CentOS 7系列]使用密鑰認證機制遠程登錄

private 用戶名 輸入密碼 服務器 操作系統 當服務器操作系統沒有配置遠程密鑰認證時,默認需要手動輸入密碼口令。以下用putty為例:1、使用putty遠程ssh登錄192.168.137.100這臺主機2、第一次登錄選擇“是(Y)”,信任該主機,緩存該主機登錄信息。3、登錄時,要輸

[CentOS 7系列]主機間互相登錄

主機 用戶 1、為兩臺主機設置主機名稱。2、主機2使用w查看系統訪問用戶。3、主機1使用root賬戶遠程訪問主機2的22端口。4、主機1登錄後,主機2使用w查看系統訪問用戶,發現增加了一個來自主機1的session。5、使用密鑰遠程訪問①主機1生成密鑰對(ssh-keygen)②主機2添加主機1的公鑰

[CentOS 7系列]忘記密碼的“救星”——單用戶模式和救援模式

linux 操作系統 用戶 system 忘記密碼 init是Linux系統操作中不可缺少的程序之一。 是一個由內核啟動的用戶級進程。 內核啟動(已經被載入內存,開始運行,並已初始化所有的設備驅動程序和數據結構等)之後,就通過啟動一個用戶級程序init的方式來啟動其他用戶級的進程或服務。所

[CentOS 7系列]linux系統文件類型

linux 文件夾 而且 ls命令是linux下最常用的命令。ls命令就是list的縮寫。通過ls 命令不僅可以查看linux文件夾包含的文件,而且可以查看文件權限(包括目錄、文件夾、文件權限)查看目錄信息等等。1.命令格式: ls [選項] [目錄名]2.命令功能: 列出目標目錄中所

[CentOS 7系列]絕對路徑與相對路徑

change linux 管理員 項目 根目錄 前幾帖中說過,在linux系統中,所有的一切都是以文件的形式呈現。當管理員調用文件時,需要在linux系統中定位到文件的位置。這裏就采用絕對路徑和相對路徑兩種方式。 所謂絕對路徑,就是指文件在硬盤上真正存在的路徑。這個路徑是相對

[CentOS 7系列]用戶與用戶組(下)

linux 上一帖提到用戶與用戶組的創建,在創建的過程中,我們可以搭配很多參數,用來設置用戶賬戶的一些設置與屬性。但很多時候,我們的用戶賬戶是已經在業務中使用的。不可能去刪除用戶後重新添加。這時,就需要去直接調整已有用戶的賬戶屬性了。 在這種場景中,我們有兩種解決的方式。第一種就是改配置文件。li

[CentOS 7系列]swap空間擴容

windows 虛擬內存 交換空間 服務器 操作系統 記得安裝操作系統的時候,在分配磁盤空間環節,我們分配了swap空間。默認設置swap空間是物理內存的2倍大小。那什麽是swap呢?所謂的swap,類似於Windows的虛擬內存,就是當內存不足的時候,把一部分硬盤空間虛擬成內存使

[CentOS 7系列]LVM磁盤管理

系統管理員 系統工具 計算機 linux 用戶組 LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它由Heinz Mauelshagen在Linux 2.4內核上實現。LVM將一個或多個硬盤的分區在邏輯上集合,相當於一個大硬盤來使用,當硬盤的空間不夠使用

[CentOS 7系列]VIM一般模式

配置文件 linux 操作系統 用戶 VIM是linux操作系統下的一款文本編輯工具。它是VI的升級版。區別於VI,使用VIM打開文件時會明顯的顯示字符顏色。默認系統不自帶VIM工具,可以通過yum install -y vim-enhanced命令安裝。它的配置文件為/etc/vim

[CentOS 7系列]VIM編輯模式與命令模式

用戶 mtime 一、編輯模式按鍵作用i在當前字符前插入I在光標所在行的行首插入a在當前字符後插入A在光標所在行的行尾插入o在當前行的下一行插入新的一行O在當前的上一行插入新的一行二、命令模式命令作用/word向光標之後查找一個字符word,按n向後繼續搜索?word向光標之前查找一個字符word,按

[CentOS 7系列]gzip、bzip2、xz

軟件 linux 空間 windows 壓縮文件 在windows系統中,我們會使用一些壓縮軟件去壓縮文件,以達到節省磁盤空間的目的。在linux系統中,也有這種壓縮和打包的工具。1、gzip命令作用gzip 1.txt壓縮gzip -d 1.txt.gzgunzip 1.txt.

[CentOS 7系列]壓縮與打包(下)

linux windows 壓縮文件 壓縮包 除了gzip、bzip2和xz外,linux中還有一款壓縮軟件。它支持壓縮目錄,也可以解壓windows中同類型的文件。它就是我們熟悉的zip。1、zip命 令作 用zip 1.txt.zip 1.txt壓縮zip -r 123.zip

[CentOS 7系列]RPM安裝

rpm 在部署服務時,我們需要安裝各種軟件包。在linux操作系統中,安裝包的方式主要有三種,分別為RPM安裝、YUM安裝和源碼包安裝。其中源碼包安裝最為復雜,其次是RPM的安裝方式。YUM是最為方便的一種方式,它是由python編寫的安裝軟件,可以自動安裝依賴包。[[email protec

[CentOS 7系列]YUM安裝(上)

yum1、YUM工具命 令作 用yum list列出可用安裝包yum search packet-name搜索包yum install [-y] packet-name 安裝包yum grouplist查看可能批量安裝的列表yum groupinstall [-y] group-name批量安裝包yum

[CentOS 7系列]命令歷史與別名

history alias 當用戶登錄linux操作系統時,就進入了當前用戶的shell。shell是一個命令解釋器,它提供了用戶與機器之間的交互。它支持特定語法,比如邏輯判斷、循環等。每個用戶都可以有自己特定的shell。CentOS 7默認shell為bash。除了bash之外,還有zsh

[CentOS 7系列]變量

變量 “變量是一種使用方便的占位符,用於引用計算機內存地址,該地址可以存儲Script運行時可更改的程序信息。使用變量並不需要了解變量在計算機內存中的地址,只要通過變量名引用變量就可以查看或更改變量的值。”舉個例子,當用戶上傳一個值,這個值傳遞給程序。這個值在程序運行中被多次調用賦值。在系統做升級時,維護

[CentOS 7系列]作業控制

作業1、jobs[[email protected]/* */ ~]# top top - 06:39:07 up 8:24, 3 users, load average: 0.01, 0.04, 0.05 Tasks: 87 total, 1 running, 84 sleepin