1. 程式人生 > ><linux小白進階> sed指令的基本用法

<linux小白進階> sed指令的基本用法

linux指令

本文內容較簡潔,適合linux有點基礎的菜鳥。。。

功能介紹之後都有例子便於理解,希望對大家能起到幫助作用


sed 是一種在線編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區中的內容,處理完成後,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容並沒有 改變,除非你使用重定向存儲輸出。Sed主要用來自動編輯一個或多個文件;簡化對文件的反復操作;編寫轉換程序等


1、num1num2:操作從num1行到num2行的內容,若只有一個num,則為精確匹配該行

EG[[email protected] mnt]# sed ‘

13d‘ test 刪除文件的13

2word1word2:從第一次匹配到字符word1到第一次匹配到字符word2之間的所有行

3m +n:從m行開始後面的n

EG[[email protected] mnt]# sed ‘1 +3d‘ test 刪除文件的第1行和後面的3

4num a \word :在num行後年添加字符word

5num i \word :在num行前面添加字符word

EG:

[[email protected] mnt]# sed ‘2a \hello‘ test

hello, like

hello

hello, love

[[email protected] mnt]# sed ‘2i \hello‘ test

hello

hello, like

hello, love

若想再添加一行則:

[[email protected] mnt]# sed ‘2a \hello\n\world‘ test \n為換行符)

hello, like

hello

world

hello, love

6r FILE:在指定行後面添加FILE內的內容

EG: sed ‘2r /etc/passwd‘ fstab ##在第二行後面加上/etc/passwd文件的內容

7w FILE:將地址指定範圍內的內容另存到FILE

EG:

[[email protected] mnt]# sed -n ‘1,3w /mnt/test1‘ /etc/passwd

[[email protected] mnt]# cat test1

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

8&***:在匹配到的內容後面加上***

9l***:在匹配到的內容後面減去*** (小寫L

EG

[[email protected] mnt]# cat test

hello, like

hello, love

[[email protected] mnt]# sed ‘s/l..e/&r/‘ test

hello, liker

hello, lover

[[email protected] mnt]# sed ‘s/l..r/lr/‘ test

hello, like

hello, love

Sed功能選項:

-n:只顯示被匹配到的內容,不在顯示模式空間內的內容

-i:對源文件更改

sed+正則表達式的擴展:

##測試文件為test

1、刪除文件的空白行: sed ‘/^$/d‘ test

2、刪除文件中行首的空白符: sed ‘s/^[[:space:]]//‘ test

3、刪除文件中開頭的#,但#後面必須有空白:sed ‘s/^#[[:space:]]//‘ test


本文出自 “11944248” 博客,請務必保留此出處http://11954248.blog.51cto.com/11944248/1963794

<linux小白進階> sed指令的基本用法