1. 程式人生 > >Jimmy的文件:Linux sed 學習

Jimmy的文件:Linux sed 學習

sed是一個很好的檔案處理工具,本身是一個管道命令,主要是以行為單位進行處理,可以將資料行進行替換、刪除、新增、選取等特定工作,下面先了解一下sed的用法
sed命令列格式為:
         sed [-nefri] ‘command’ 輸入文字        

常用選項:
        
-n∶使用安靜(silent)模式。在一般 sed 的用法中,所有來自 STDIN的資料一般都會被列出到螢幕上。但如果加上 -n 引數後,則只有經過sed 特殊處理的那一行(或者動作)才會被列出來。
        -e∶直接在指令列模式上進行 sed 的動作編輯;
        -f∶直接將 sed 的動作寫在一個檔案內, -f filename 則可以執行 filename 內的sed 動作;
        -r∶sed 的動作支援的是延伸型正規表示法的語法。(預設是基礎正規表示法語法)
        -i∶直接修改讀取的檔案內容,而不是由螢幕輸出。

       

常用命令:
        a   ∶新增, a 的後面可以接字串,而這些字串會在新的一行出現(目前的下一行)~
        c   ∶取代, c 的後面可以接字串,這些字串可以取代 n1,n2 之間的行!
        d   ∶刪除,因為是刪除啊,所以 d 後面通常不接任何咚咚;
         i   ∶插入, i 的後面可以接字串,而這些字串會在新的一行出現(目前的上一行);
         p  ∶列印,亦即將某個選擇的資料印出。通常 p 會與引數 sed -n 一起運作~
         s  ∶取代,可以直接進行取代的工作哩!通常這個 s 的動作可以搭配正規表示法!例如 1,20s/old/new/g 就是啦!

舉例:(假設我們有一檔名為ab)
     刪除某行
     [[email protected] ruby# sed '1d' ab              #刪除第一行 
     [[email protected] ruby] # sed '$d' ab              #刪除最後一行
     [[email protected] ruby] # sed '1,2d' ab           #刪除第一行到第二行
     [[email protected] ruby] # sed '2,$d' ab           #刪除第二行到最後一行

  顯示某行
.    [[email protected] ruby# sed -n '1p' ab           #顯示第一行 
     [[email protected] ruby] # sed -n '$p' ab           #顯示最後一行
     [[email protected] ruby] # sed -n '1,2p' ab        #顯示第一行到第二行
     [[email protected] ruby] # sed -n '2,$p' ab        #顯示第二行到最後一行

  使用模式進行查詢
     [[email protected] ruby] # sed -n '/ruby/p' ab    #查詢包括關鍵字ruby所在所有行
     [[email protected] ruby] # sed -n '/\$/p' ab        #查詢包括關鍵字$所在所有行,使用反斜線\遮蔽特殊含義

  增加一行或多行字串
     [[email protected] ruby]# cat ab
     Hello!
     ruby is me,welcome to my blog.
     end
     [[email protected] ruby] # sed '1a drink tea' ab  #第一行後增加字串"drink tea"
     Hello!
     drink tea
     ruby is me,welcome to my blog. 
     end
     [[email protected] ruby] # sed '1,3a drink tea' ab #第一行到第三行後增加字串"drink tea"
     Hello!
     drink tea
     ruby is me,welcome to my blog.
     drink tea
     end
     drink tea
     [[email protected] ruby] # sed '1a drink tea\nor coffee' ab   #第一行後增加多行,使用換行符\n
     Hello!
     drink tea
     or coffee
     ruby is me,welcome to my blog.
     end

  代替一行或多行
     [[email protected] ruby] # sed '1c Hi' ab                #第一行代替為Hi
     Hi
     ruby is me,welcome to my blog.
     end
     [[email protected] ruby] # sed '1,2c Hi' ab             #第一行到第二行代替為Hi
     Hi
     end

  替換一行中的某部分
  格式:sed 's/要替換的字串/新的字串/g'   (要替換的字串可以用正則表示式)
     [[email protected] ruby] # sed -n '/ruby/p' ab | sed 's/ruby/bird/g'    #替換ruby為bird
   [[email protected] ruby] # sed -n '/ruby/p' ab | sed 's/ruby//g'        #刪除ruby

     插入
     [[email protected] ruby] # sed -i '$a bye' ab         #在檔案ab中最後一行直接輸入"bye"
     [[email protected] ruby]# cat ab
     Hello!
     ruby is me,welcome to my blog.
     end
     bye

相關推薦

JimmyLinux sed 學習

sed是一個很好的檔案處理工具,本身是一個管道命令,主要是以行為單位進行處理,可以將資料行進行替換、刪除、新增、選取等特定工作,下面先了解一下sed的用法 sed命令列格式為:          sed [-nefri] ‘command’ 輸入文字         常用選項:        -n∶使用

linux編程之操作 linux知識學習

往回 開始 查看 宋體 more 用法 tab tro 學習 Linux文件內容查看是Linux操作中不可或缺的操作,以下是對Linux下常用的文件內容查看命令的匯總。1. cat 由第一行開始顯示文件內容用法:cat -A 相當於-vET的整合選項,可列出一些特殊字符而

Hadoop Shell命令(基於linux操作系統上傳下載文到hdfs系統基本命令學習

指南 統計信息 ... err nor 清空 ext -- als Apache-->hadoop的官網文檔命令學習:http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html FS Shell 調用文件系統

linux學習(八) XShell上傳、下載本地linux服務器

下載工具 windows 通過命令 保存文件 技術 lin ram cal 安裝 (一)通過命令行的方式 1.linux服務器端設置 在linux主機上,安裝上傳下載工具包rz及sz; 如果不知道你要安裝包的具體名稱,可以使用yum provides */name 進行查

CentOS初步學習記錄(三)Wget下載和Sed處理

下載速度 file 文件 socket cut inux 調試 數據行 use mozilla 一、wget 命令 wget命令用來從指定的URL下載文件,wget非常穩定,它在帶寬很窄的情況下和不穩定網絡中有很強的適應性,如果是由於網絡的原因下載失敗,wget會不斷

Django學習官網指導使用models.ForeignKey時python3.7一定要傳入實參on_delete=models.CASCADE

網址:https://docs.djangoproject.com/en/2.0/ Fields 模型中最重要的部分——以及模型中唯一需要的部分——是它定義的資料庫欄位列表。欄位由類屬性指定。注意不要選擇與模型API衝突的欄位名稱,如清除、儲存或刪除。 from django.db i

Jimmy openshift origin ConfigMaps

                                                                           Openshift Origin ConfigMaps      ConfigMaps 是openshift提供的一種管理配置

JImmy 搭建叢集版openshift origin-3.9

系統安裝:        系統配置,理論上一般配置都可以,推薦                  記憶體 4G以上                  CPU 4個以上                  硬碟 100G以上。        系統映象: CentOS-7

鳥哥的Linux私房菜-第10/11/12/13章(vim程序編輯器、學習bash、正則表達式與格式化處理、學習Shell Scripts)

重定向 數據文件 bin 情況下 control 入侵檢測 nts 背景 成了 第10章 vim程序編輯器 可以將vim看做vi的進階版本,vim可以用顏色或底線等方式來顯示出一些特殊的信息。 為何要學習vim?因為:   a. 所有的 Unix Like 系統都會內

Linux核心如何寫符合 kernel-doc 規範的註釋

## 簡介 Linux核心使用 [Sphinx](http://www.sphinx-doc.org/) 實現把 *Documentation* 目錄下的 [reStructuredText](http://docutils.sourceforge.net/rst.html) 檔案轉換為非常漂亮的文件。文件

python基礎知識之將item寫入JSON

ext self 它的 基礎 string 寫入 lan raw pre pipelines.py import json class xxPipeline(object): def __init__(self): self.filename=ope

windows用SSH和linux同步&linux開啟SSH&ssh client 報 algorithm negotiation failed的解決方法之一

.com oot install .cn 導致 per 連接 pem 用戶 1、安裝、配置與啟動 SSH分客戶端openssh-client和openssh-server 如果你只是想登陸別的機器的SSH只需要安裝openssh-client(ubuntu有默認安裝,如果

Mac/Linux/Centos終端中上傳Linux雲服務器

gin log itl not root用戶 終端 ssh端口 路徑和 輸入 Mac/Linux/Centos終端中上傳文件到Linux雲服務器 1、mac上傳文件到Linux服務器 scp 文件名 [email protected]/*

上傳下載學習

自動 ctype 下載方式 內容 一次 xxx orm 上傳文件 cnblogs 文件上傳核心要通過設置表單的enctype=”multipart/form-data”(具體的請求體數據格式可以通過火狐瀏覽器的開發者工具看到)來告訴瀏覽器以二進制流的方式上傳數據(而不是默認

PDB每個開發人員都必須知道的

ger val 變量 conf 地址空間 代碼 modules div 查找 http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05/11/pdb-files-what-every-developer-must

與用戶和組相關的位置   --   學習筆記

用戶和組管理 下列文件內容是以“:”分隔,123...代表所在的位置/etc/passwd : root:x:0:0:root:/root:/bin/bash 1.“root”用戶帳戶登錄名稱 2.“x”使用x表示密碼占位符 3.“0”用戶帳戶的UID 4.“0”用戶帳戶的GID,即該用戶帳戶的基本組的ID

java讀取本文

一個 throw str red mod rac logs exc lose   一般使用串行方式讀出或者寫入文件。總的來說,使用輸入流把文件內容讀入內存,使用輸出流把內存中的信息寫出到文件。這些類位於java.io包下。輸入和輸出的類和方法往往是對應的 文本文件

webpack快速入門——配置服務和熱更新

並且 base 復制 暴露 span port 錯誤 tput 自己的 1.在終端安裝 cnpm i webpack-dev-server --save-dev 2.配置好後執行 webpack-dev-server,這時候會報錯 出現錯誤,只需要在pagejson裏

Linux目錄結構

module 最好 win 對待 行修改 fstab size idc .html 什麽是文件 在linux系統上,所有的資源都是文件,Linux系統下的文件類型包括 普通文件(-) 目錄(d) 符號鏈接(l) 字符設備文件(c) 塊設備文件(b) 套接字(s) 命令管道

刪除指定路徑下指定天數之前(以的最後修改日期為準)的BAT + REG + VBS

2.0 ane blog set logo fmt 演示 back style @echo off ::演示:刪除指定路徑下指定天數之前(以文件的最後修改日期為準)的文件。 ::如果演示結果無誤,把del前面的echo去掉,即可實現真正刪除。 ::本例調用了臨時VBS代碼