国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Unix > 正文

Unix sed編輯器如何讀寫文件操作

2024-09-08 18:01:04
字體:
供稿:網(wǎng)友

上篇我們講了如何用Unix sed編輯器替換文件內(nèi)容,本教程我們來講講用sed如何讀寫文件操作,還有如何將一個文件部份內(nèi)容寫入到另外一個文件里去,本文將展示如何將文件內(nèi)容讀入到sed輸出,同時包含如何將一個文件的部分內(nèi)容寫入到另一文件.

一.文件讀取

假定有兩個文件,file1和file2,內(nèi)容分別如下:

  1. $ cat file1 
  2. 1apple 
  3. 1banana 
  4. 1mango 
  5.  
  6. $ cat file2 
  7. 2orange 
  8. 2strawberry 

sed有兩個選項用來讀寫文件

r filename:讀取filename指定的文件內(nèi)容

w filename:將內(nèi)容寫入filename指定的文件

看例子:

1.在file1的每一行讀完之后讀取file2的內(nèi)容:

  1. $ sed ‘r file2’ file1 
  2. 1apple 
  3. 2orange 
  4. 2strawberry 
  5. 1banana 
  6. 2orange 
  7. 2strawberry 
  8. 1mango 
  9. 2orange 
  10. 2strawberry 

r file2讀取file2的所有內(nèi)容,因此r之前沒有知道那個行號或匹配,因此有了上面的輸出,記住,sed的工作機制,每次讀file1的一行,然后執(zhí)行命令.

2.如何在讀取了file1的第一行之后將file2讀入.

  1. $ sed ‘1r file2’ file1 
  2. 1apple 
  3. 2orange 
  4. 2strawberry 
  5. 1banana 
  6. 1mango 

r前面加個1就行了.

3.當(dāng)file1某行匹配了模式之后,讀入file2.

  1. $ sed ‘/banana/r file2’ file1 
  2. 1apple 
  3. 1banana 
  4. 2orange 
  5. 2strawberry 
  6. 1mango 

sed逐行讀入file1,然后判斷該行是否匹配banana,如果匹配,就讀入file2.

4.當(dāng)file1讀取完成后讀入file2,其實就是合并兩個文件.

  1. $ sed ‘$r file2’ file1 
  2. 1apple 
  3. 1banana 
  4. 1mango 
  5. 2orange 
  6. 2strawberry 

這里只是演示一下,其實cat file1 file2就可以完成合并.

二.文件寫入

使用一個file1文件,內(nèi)容如下:

  1. $ cat file1 
  2. apple 
  3. banana 
  4. mango 
  5. orange 
  6. strawberry 

1.將file1的2-4行寫入到file2.

$ sed -n ‘2,4w file2’ file1

2,4w就是寫2-4行的意思,那-n呢?默認(rèn)情況下sed會把讀入的文件處理的結(jié)果輸出到標(biāo)準(zhǔn)輸出,也就是終端,而為了不使用默認(rèn)輸出,-n就派上用場了,執(zhí)行該命令終端不會有任何輸出.

  1. $ cat file2 
  2. banana 
  3. mango 
  4. orange 

查看file2內(nèi)容,發(fā)現(xiàn)已經(jīng)寫入成功了.

2.從第三行開始全部寫入file2.

  1. $ sed -n ‘3,$w file2’ file1 
  2.  
  3. $ cat file2 
  4. mango 
  5. orange 
  6. strawberry 

就不多解釋了.

3.如果是用正則呢?

  1. $ sed -n ‘/apple/,/mango/w file2’ file1 
  2.  
  3. $ cat file2 
  4. apple 
  5. banana 
  6. mango --Vevb.com 

該命令將逐行讀入file1,然后判斷該行是否匹配apple,如果匹配,則作為起始行,然后繼續(xù)讀入,判斷是否匹配mango,如果是,則作為終止行,然后將中間的內(nèi)容寫入到file2.

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 简阳市| 永丰县| 疏附县| 醴陵市| 黄冈市| 高清| 贵定县| 绥德县| 金门县| 侯马市| 偃师市| 海原县| 安西县| 内黄县| 四平市| 乡城县| 抚宁县| 滨海县| 澜沧| 鹤庆县| 伊川县| 汉沽区| 紫金县| 句容市| 拉萨市| 桦南县| 靖江市| 华蓥市| 凌云县| 明溪县| 滦南县| 嘉定区| 通州市| 历史| 开封市| 崇礼县| 河间市| 古浪县| 资兴市| 徐州市| 金川县|