linux 下ed編輯檔案的一些東東(從網上搜來的)

來源:互聯網
上載者:User

基本應用:
1,$n             列印檔案內容,並加行號資訊
n                到第n行(n為數字)
n                顯示當前行的內容(n為字元)
d                刪除該行
/xx/             尋找xx
?xx?             反向尋找xx
//               尋找下一個
s/str1/str2/     當前行中替換str1為str2
ns/str1/str2/    在第n行中替換str1為str2
a,c,i            在當前行操作(a:在行後添加  c:修改行內容 i:在行前插入)
命令參數:
ed file
出錯時,h提供簡單協助資訊,H提供詳細協助資訊,用a,c,I進入輸入方式,在單獨一行上用,回到命令格式儲存檔案w.   Wq =x
p  .p 顯示當前行
=  顯示當前行的行號
np  顯示第n 行
1,6p  顯示1-6行
$p   顯示最後一行
1,$p顯示所有行
+  顯示下一行
- 顯示上一行
n  顯示當前行及行號
nn  顯示第n行及行號
x,yn  顯示x—y行及行號
l   顯示當前行包括非列印字元
d   刪除當前行
u   取消最後命令
s /str1/str2   用 str2 取代str1
s/str1//    刪除str1
2s/str1/str2/n   第2 行的str1改為str2並顯示修改後的行
s/str1/str2/g   全程替換
<first>,<end>m<line>
2,4m6    第2—4行移到第6行之後
t 塊拷貝格式同m
r file  將檔案讀到當前行後
<first>,<end> w file   寫塊到檔案
!cmd   執行shell命令
/模式/   正向尋找命令
?模式?反向尋找命令
//  繼續找第2個
g/the/p   全程尋找並顯示
g/the/s/the/that/   全程尋找the並用that代替the
v與g命令相反
v/the/n   全程尋找不包含the 並顯示
無字元
^代表行首   $行尾    .任一字元   *任意多個與前面相同字元
/A….B/   以A開關B結尾中間3個任意
. s/. /.     第1個 . 當前行
         第2 個 . 任一字元
         第3個 . 字元
s/xx*/y/   用y代替2個或2個以上的x
s/x*y/y/   用y代替以x開頭以y結束的所有字元
&代表第1個模式內容
/模式1/(模式1)/=/模式1/(&)/
[xz]表示x或z
[0-9]表示0-9的任一數字

 ----------------------------------------------------------------------------------------------

 ed 編輯器是 Linux 作業系統下最簡單的文字編輯器。它是以行為單位對檔案進行編輯的編輯器,而不像 MS-DOS 系統下的 edit 那樣是以整個螢幕架構為單位對檔案進行編輯的。因此,如果你已經習慣了使用 edit 這種風格的編輯器,那麼你可能需要一段時間才能習慣 ed 的風格。但是這並不重要,因為 ed 的簡便性可以使你很快上手的。

ed 編輯器的調用很簡單,如果你想建立一個檔案,那麼只需要在命令列視窗中敲入 ed 然後按下斷行符號鍵即可:

[titan@localhost titan]$ ed <-

如果你想編輯一個已經存在的檔案,那麼你只要在 ed 的後面空一個,然後敲入檔案名稱即可:

[titan@localhost titan]$ ed filename <-

啟用 ed 命令後進入的是 ed 編輯器的命令列狀態,這可能使一些初學者有些不習慣,如果你這時候隨便敲入一些內容,系統會返回一個 ?,表示不知道你要執行什麼任務:

[titan@localhost titan]$ ed <-

abcde <-

?

這時候你要明確幾個編輯器命令,它們是:

a - 在檔案的末尾添加新內容

i - 在檔案的最後一行之前插入新內容

o - 把檔案輸入的最後一行(不論是原來存在的或者插入的)替換成新內容

. - 退出編輯檔案模式進入命令列模式(注意:此時並沒有退出 ed 編輯器)

w - 儲存檔案

q - 真正退出 ed 編輯器

下面我將就著幾個命令舉例說明一下。

[titan@localhost titan]$ ed <- 啟用 ed 命令

a <- 告訴 ed 我要編輯新檔案

My name is Titan. <- 輸入第一行內容

And I love Perl very much. <- 輸入第二行內容

. <- 返回 ed 的命令列狀態

i <- 告訴 ed 我要在最後一行之前插入內容

I am 24. <- 將“i am 24.”插入“my name is titan.”和“and i love perl very much.”之間

. <- 返回 ed 的命令列狀態

c <- 告訴 ed 我要替換最後一行輸入內容

I am 24 years old. <- 將“i am 24.”替換成“i am 24 years old.”(注意:這裡替換的是最後輸的內容)

. <- 返回 ed 的命令列狀態

w readme.text <- 將檔案命名為“readme.text”並儲存(注意:如果是編輯已經存在的檔案,只需要敲入 w 即可)

q <- 完全退出 ed 編輯器

[titan@localhost titan]$ 返回到 Linux 系統的命令列狀態

這是檔案的內容是:

[titan@localhost titan]$ cat readme.text <-

My name is Titan.

I am 24 years old.

And I love Perl vrey much.

[titan@localhost titan]$

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.