1. 程式人生 > >非互動的編輯器之sed

非互動的編輯器之sed

注:sed 是逐行處理的

sed文字處理工具的用法:

  1. 用法1:前置命令 | sed [選項] '條件指令'
  2. 用法2:sed [選項] '條件指令' 檔案.. ..

相關說明如下:

  • 條件可以是行號或者/正則/
  • 沒有條件時,預設為所有條件
  • 指令可以是增、刪、改、查等指令
  • 預設sed會將所有輸出的內容都打印出來,可以使用-n遮蔽預設輸出
  • 選項中可以使用-r選項,讓sed支援擴充套件正則

下面是介紹一些選項和基本用法

sed命令的常用選項如下:

    -n(遮蔽預設輸出,預設sed會輸出讀取文件的全部內容)

    -r(讓sed支援擴充套件正則)/正則/

    -i(sed直接修改原始檔,預設sed只是通過記憶體臨時修改檔案,原始檔無影響)

sed 的常用條件指令

    p 列印

    d 刪除 

    s/old/new/ 替換   也可用來做一些字串的刪除

下面介紹一下具體的用法

 指令p

  1. [[email protected] ~]# sed '1p' /etc/hosts 列印檔案的第一行 但由於沒有加-n選項所以預設會列印整個檔案
  2. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
  3. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.
    localdomain4
  4. ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
  1. [[email protected] ~]# sed -n '1p' /etc/hosts 列印檔案的第一行 (遮蔽預設輸出)
  2. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

                 01.                 [[email protected] ~]# sed -n

'3,5p'/etc/passwd 列印第3到5行

  1. [[email protected] ~]# sed -n '3p;5p' /etc/passwd 列印第3和5行
  2. [[email protected] ~]# sed -n '3,+10p' /etc/passwd 列印第3以及後面的10行
  3. [[email protected] ~]# sed -n '1~2p' /etc/passwd 列印奇數行 【這裡就是列印 1 1+2 1+2+2......】
  4. [[email protected] ~]# sed -n '2~2p' /etc/passwd 列印偶數行
  5. [[email protected] ~]# sed -n '$=' /etc/passwd 輸出檔案的行數

d 指令同p指令 測試時可不加-n選項可以直觀看出效果

s/old/new/ 替換指令

  1. [[email protected] ~]# vim test.txt             //新建素材
  2. 2017 2011 2018
  3. 2017 2017 2024
  4. 2017 2017 2017
  1. [[email protected] ~]# sed 's/2017/xxxx/' test.txt 把每行的第一個2017替換成xxxx
  2. [[email protected] ~]# sed 's/2017/xxxx/g' test.txt 把每行所有的2017替換成xxxx
  3. [[email protected] ~]# sed 's/2017/xxxx/2' test.txt 把每一行的第二個2017替換成xxxx
  4. [[email protected] ~]# sed 's/2017//2' test.txt 刪除每一行的第二個2017

  下面介紹一下sed的一些正則用法

    [[email protected] ~]#   sed -n   '/^root/p' /etc/passwd         找出以root開頭的並列印

    [[email protected] ~]#   sed  -n   '/bash$/p' /etc/passwd          找出以bash結尾的並列印

    [[email protected] ~]#   sed    's#/bin/bash#/sbin/sh#'   /etc/passwd      將/bin/bash替換成/sbin/sh     【這裡相當於s#old#new#】

  1. [[email protected] ~]# cat nssw.txt 新建素材
  2. Hello the world
  3. ni hao ma beijing
  1. [[email protected] ~]# sed 's/.//2 ; s/.$//' nssw.txt
  2. 刪除檔案中每行的第二個、最後一個字元分兩次替換操作,第一次替換掉第2個字元,第二次替換掉最後一個字元
  1. [[email protected] ~]# sed -r 's/^(.)(.*)(.)$/\3\2\1/' nssw.txt 將檔案中每行的第一個、倒數第1個字元互換
  2. 將每行文字拆分為“第1個字元”、“中間的所有字元”、“倒數第1個字元”三個部分,然後通過替換操作重排順序為“3-2-1”
  1. [[email protected] ~]# sed 's/([A-Z])/[\1]/g' nssw.txt 為檔案中每個大寫字母新增括號使用 “()”可實現保留功能

注:1.正則的用法用法還有很多就不一 一列舉了具體可以按實際的要求操作sed預設不支援擴充套件正則所以使用擴充套件正則時需加-r選項   

    2.建議在使sed修改檔案是先不要加-i選項測試無誤後方可加上-i選項

相關推薦

互動編輯sed

注:sed 是逐行處理的 sed文字處理工具的用法: 用法1:前置命令 | sed [選項] '條件指令' 用法2:sed [選項] '條件指令' 檔案.. .. 相關說明如下: 條件可以是行號或者/正則/ 沒有條件時,預設為所有條件 指令可以是增、刪、改、查

Unity3D編輯重寫Hierarchy的右鍵菜單

col art n) 條件 any rect obj lan dga 1 using UnityEngine; 2 using UnityEditor; 3 using System.Collections; 4 5 public class MyHiera

編輯神-vim

height linu spa 所有 所在 刪除 space 代碼 ges vi簡介 vi是“Visual interface”的簡稱,它在Linux上的地位就仿佛Edit程序在DOS上一樣。它可以執行輸出、刪除、查找、替換、塊操作等眾多文本操作,而且用戶可以根據自己的需要

新手入門——Ubuntu上的編輯神Vi / Vim

正常 必須 進步 align 單個 顯示 三種 三種模式 .py   Ubuntu上的編輯器有gedit、vi、sublime等。gedit一般在沒有其他編輯器時臨時使用,大部分情況下,vi和sublime使用的比較多,Linux系統內置了vi和sublime,其中,sub

百度編輯使用與常見問題

dialog ont mage arch 參考 問題 spa 常見 圖片   最近,我們後臺使用的編輯器用於需求的變更換成了百度編輯器,在使用的時候碰到了一些問題,總結在此   參考完檔: http://fex.baidu.com/ueditor/   一. 初始化

Typora:簡潔強大的Markdown編輯安裝

all png fire block www com 平臺 download https 概述: Markdown由Daring Fireball創建,是一款簡潔強大的多平臺Markdown編輯器,例如:Mac、Windows、Linux等平臺均可以安裝使用。如圖: 下

Sql Server2008 中的活動監視器、物件資源管理詳細資訊、搜尋、查詢編輯IntelliSense (轉)

Management Studio首次出現在MSSQL2005中,到MSSQL2008中已經成為了一個更成功的產品。其中在SSMS2008中最重要的特性如下: 1.活動監視器 2.物件資源管理器詳細資訊 3.搜尋 4.查詢編輯器之IntelliSense    &nb

Linux基礎:文字編輯神vim的基本操作

vi是Linux底下最常用的一款強大的文字編輯器(vim是vi的升級版,在其基礎上加入了一些新特性),用起來很Coooooool酷!大概是處於鄙視層的最頂端這個級別,讓我們一起膜拜一下吧(^__^) 。 vi的三種工作模式 編輯模式 游標定位: k/j/h/l 分別是

Typora:簡潔強大的Markdown編輯Markdown語法

目錄 一看就懂的Markdown語法 一、Markdown簡介 二、編輯工具推薦 三、語法 1.標題 2.列表 3.引用 4.加粗、斜體等 5.連結與圖片 6.更改圖片大小 7.

Unity 編輯Inspector面板編輯

編輯器有很多類:編輯器類。例如:EditorGUI(編輯器介面),EditorGUILayout(編輯器介面佈局),EditorGUIUtility(編輯器介面工具)等等這些,都是編輯器對介面進行編輯。 EditorGUILayout 編輯器介面佈局 介面的相關事件機制總共有9個: 1.

Linux中Vi編輯簡單常用命令

Vi是Linux中最基本的文字編輯器。vi可以分為三種狀態,分別是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能區分如下:    1) 命令列模式command mode)   控制螢

編輯神-vim的使用技巧

vim VS. emacs vim被譽為編輯器之神,而emacs被譽為神之編輯器。中國文化博大精深,他們究竟有什麼區別呢?作為emacs小白的我來說不想在這裡獻醜,直接貼上一篇部落格,有興趣的同學可以深入研究或者自行百度https://www.v2ex.com/t/3325

vim 編輯sed 命令的字串替換

一、vim編輯器字串替換 1、開啟需要編輯的檔案 2、執行如下命令 #oldstring 為需要被替換的字串 #newstring 用來替換的新字串 #替換是替換全部oldstring為newstring %s/oldstring/newstring/g 二、sed

unity編輯自動提示訂外賣

1、問題來源         事情一忙,忘記叫外賣是常有的事,到了12點同事們都吃上了飯,你卻只能捱餓,估計很多程式設計師都有這種經歷吧,這裡我們來做一個unity編輯器準點提示訂外賣服務的功能。   2、先上程

c編輯clion安裝,編譯,控制檯亂碼修復

1. 下載clion,注意安裝的時候選擇的目錄不能有任何中文字型。只能英文+數字 2.安裝完畢後,開啟軟體,選擇License Server,輸入:http://xidea.online 3.啟用完

Emacs和Vim:神的編輯編輯神(ZZ)

0. 序章:神器的傳說 在這個蔚藍色的星球上,流傳著兩大神器的傳說:據說Emacs是神的編輯器,而Vim是編輯器之神。 追求獨步天下的高手和低手們爭著一睹它們的風采,可看到它們樸素單薄的介面後,不禁心下懷疑:這就是神器嗎?甚至有人生了輕視之心。 膚淺的人嗤之以鼻,說

筆記5,vim ——編輯

vi命令 命令模式:     yy:複製 游標所在的這一行     4yy:複製 游標所在行開始向下的4行     p: 貼上     dd:剪下 游標所在的這一行

CSDN-markdown編輯從本機匯入Markdown檔案(一)

  CSDN-markdown編輯器支援從本機匯入Markdown檔案的功能,如果你有從其它網站上下載的部落格文章或說明文件,或是用軟體編寫的部落格文章或說明文件,想釋出到CSDN部落格中,就可以使用本

VI編輯多檔案多屏操作

1、如何開啟多視窗: (1)不同檔案在不同視窗開啟 開啟方法: (1):e filename_path/filename 此時可以通過Tab鍵查詢目錄下的檔案,此時是重新開啟選定的檔案,前一個開啟的檔案將被關掉;不退出vi情況下開啟另一個檔案,一個視窗只顯示一個檔案。 (2

富文字編輯wangEditor

  富文字編輯器想必大家都見過,無論是發表部落格還是論壇發帖、空間發表說說,這些軟體或網站都會用到富文字編輯器。那麼,作為programmer,我們如何給自己的程式碼加上一個富文字編輯器呢?實際的需求就是textarea這個標籤只能夠傳遞文字,而無法傳遞一些諸如