sed簡介:流編輯工具,用來對文本進行過濾與替換操作。
sed流程:sed通過一次僅讀取一行內容來對某些指令進行處理後輸出。
1、sed通過文件或管道讀取文件內容,但sed默認並不直接修改源文件,而是將讀入的內容復制到緩沖區中,稱之為模式空間。
2、所有的指令操作都是在模式空間找那個進行
3、sed根據相應的指令對模式空間中的內容進行處理並輸出結果,默認輸出至標准輸出(即屏幕上)。
sed基本語法格式:
用法:sed[選項]...{腳本指令}[輸入文件]...
選項: -version 顯示sed版本
-help :顯示幫助文檔
-n,-quiet,-silent靜默輸出,默認情況下,sed程序在所有的腳本指令執行完畢後,將自動列印模式空間中的內容。
-e script允許多個腳本指令被執行
-f script-file從文件中讀取腳本指令,對編寫自動化腳本程序很實用
-i ,-in-place 該選項直接修改源文件
-l N 該選項指定l指令可以輸出的行長度,l指令為輸出非列印字元。
-posix 禁用GNU sed擴展功能。
-r 在腳本指令中使用擴展正則表達式。
-s,-separate 默認情況下,sed將把輸入的多個文件名作為一個長的連續的輸入流。而GNU sed則允許把它們當作單獨的文件。
-u,-unbuffered 最低限度的緩存輸入與輸出
a,append表示追加指令;
i,insert表示插入指令;
d,delete表示刪除指令;
s,substitution表示替換指令。
sed腳本指令的基本格式是:
[地址,即路徑]命令(有些命令僅可以對一行操作,有些可以對多行操作),命令也可以用花括弧進行組合,使命令序列可以作用於同一個地址。
address{
command1
command2
command3
}
sed的基本工作方式是:
sed的替換命令s:
1、全局替換 : s/old/new/g ,其中g為全局替換,用於替換所有出現的次數; /如果和正則匹配的內容沖突可以使用其他符號,如 : s@old@new@g
2、標志位
為什麼要有多行模式: 配置文件一般有單行出現,但也有使用json或XML格式的配置文件,為多行出現。
多行模式處理命令N、D、P
❷ Linux sed 命令詳解
sed命令行格式:sed [options] 'command' file(s)
options常用選項:
-n或--quiet或——silent:僅顯示script處理後的結果;
-e:以選項中的指定的script來處理輸入的文本文件;
-f:以選項中指定的script文件來處理輸入的文本文件;
-r∶sed 的動作支援的是延伸型正規表示法的語法;
-i∶直接修改讀取的檔案內容,而不是由螢幕輸出;
-h或--help:顯示幫助;
-V或--version:顯示版本信息。
Command常用命令:
a:新增,a 的後面可以接字元串,而這些字元串會在新的一行出現(目前的下一行);
c:取代,c 的後面可以接字元串,這些字元串可以取代 n1,n2 之間的行;
d:刪除,d 後面通常不接任何字元串;
i:插入,i 的後面可以接字元串,而這些字元串會在新的一行出現(目前的上一行);
p:列印,亦即將某個選擇的資料印出。通常 p 會與參數 sed -n 一起運作;
s:取代,可以直接進行取代的工作,通常與正規表達式搭配使用。
實例說明:
新增操作:a命令
sed '/^bird/a\test' file將test追加到 以bird開頭的行後面
刪除操作:d命令
sed '/^$/d' file #刪除空白行;
sed '2d' file #刪除第二行;
sed '2,$d' file #刪除第2行到最後一行;
sed '$d' file #刪除最後一行;
sed '/^bird/'d file #刪除所有開頭是bird的行;
插入操作:i命令
sed -i '3i\bird ' bird.conf #在bird.conf文件第3行之前插入bird
替換文本中的字元串:s命令
sed 's/bird/birds/' file #將文本中的bird替換成birds;
sed -i 's/ bird / birds /g' file #將file文件中每一行的第一個bird替換為birds;
❸ Linux文本操作常用命令
在Linux系統里常用於文本查看、操作、統計的命令:
通過多敲鍵盤,形成手感 肌肉記憶 ,熟練掌握這些命令,在以後生信分析中游刃有餘。以下是每個命令的詳細的介紹(主要是跟著 生信技能樹小郭老師 學習做的筆記)
接下來通過示例把10個命令的常用參數和用法展示出來:
參數的用法介紹:
注意事項:
用 cat 命令可以 查看文本 ,也可以 編輯文本 ,編輯文本要加 > 符號,退出時,另起一行,按 control C 退出
zcat可以查看壓縮的文本文件,tac逆向查看
結合 管道符| 使用
head / tail -n :查看文件的前 / 後 n 行,默認 10 行 (在R語言里head和tail默認是前6行)。
less命令用得最多 ,more命令用得比較少
3.1 less命令
less [參數] 文件名
less命令重要的補充用法1 :
需要注意 退出 :只要使用less命令, 按q鍵
less命令重要的補充用法2 :
參數用法:
less命令 不加參數 查看文件:
less命令加 -N參數 查看文件:顯示行號
less命令加 -S參數 查看文件:單行顯示,非常規整
對比:less和cat命令顯示文本行號的用法:less -N,cat -n
3.2 more命令
**more ** 逐頁查看,按空格翻頁,按回車換行 ,more命令一般很少用,熟練掌握less命令就好
查看壓縮文件
wc 統計字元是也把換行符統計進去,但是別的命令不一定會把換行符算進去,。
常見參數:
切記:用less命令,按q退出
cut命令是按關鍵詞來切的
常見參數:
排列前:
排列後:
解釋:1和0比,1大;7和0比,7大…在sort字典排序里,100816比1737小,所以100816排在前面。
命令行查看一個表格結構時,因為製表符對齊的原因,出現一個錯位的現象。還有 字典排序 可能和我們平時的認知不一樣,所以 加上-n參數 , 讓數值有數學意義上的大小來排序 。
uniq命令去重,只有兩行出現重復,而且是相鄰的兩行,如果不相鄰,即使出現兩行一模一樣,不會去重。
uniq命令通常和sort命令搭配使用
換其它文件試試
總之,uniq命令使用時經常和sort一起
常見參數:
常見用法1:
paste file1 file2
-s :按行合並 演示
常見用法2 : paste - -
常見參數:
要養成一個好習慣,原始數據不要輕易修改,修改的東西另外保存,文本保存用> (重定向)或是 >>(追加)
1. 用 less 查看 example.gtf ,然後管道符傳遞給 wc
2. 截取 example.gtf 第 9 列的內容
3. 在第2步的基礎上截取分號分割的第1列
4. 在第3步的基礎上排序、去重復並統計
5. 在第4步的基礎上,將空格替換成製表符
補充小知識 :
清屏 :control L
查看歷史(輸入過的)命令 :history
❹ Linux環境下文本處理,提取需要的內容
linux 文本編輯器有這個功能,可以進行游標的調整來獲取你要的內容。很方便的!