1. 程式人生 > >Linux--sed使用

Linux--sed使用

功能 idt editor shell 需要 ons add 指定 正則表達式語法

Sed:字符流編輯器(stream editor)

功能:完成對多個文件的一系列編輯工作

相關內容:應用正則表達式語法,與shell進行交互,腳本編寫

sed是行編輯器。與之對應非常的熟悉的全屏幕編輯器是vi

使用行編輯器,每次可以處理一行,

例如 : $ ed test 將顯示的最後一行,p 顯示當前的行,如果要進行後續對行的操作,就需要移至對應行,直接輸入對應行的數字num,在輸入對應的命令進行操作;

例如: 刪除15行的數據,則進行 15 D;

還可以用使用嘖嘖表達式作為一個地址,例如刪除包含單詞“regular”的行,可以使用:/regular/d

替換的語法是: 【address】s/pattern/replacement/flag -- pattern是正則表達式,用replacement替換這個正則表達式中匹配的字符串,例如: s/regular/complex/ ,如果當前行出現多次,則需要使用字符g :s/regular/complex/g ;如果要將它應用到所有的行則需要在地址前在放置一個g :g/address/regular/complex/g;

sed命令行的語法:

commond [options] script filename -- script 指定要執行的指令 ,假如它包含有可以有shell解釋的空格或者任意字符(例如$和*),那麽它必須由單引號括起來;

命令:sed -f -f選項允許你指定腳本文件的名字,在sed的操作中,每個程序每次從輸入文件中讀取一個輸入行,生成改輸入行的備份,並且對該備份行執行腳本指定的指令,因此,對輸入行所做的改動不會影響真正的輸入文件;因此只有重定向sed的輸出到另一個程序中,才能夠捕獲文件中的輸出。

例如:$ sed -f sedscr list > newlist 註意不要將文件輸出重定向到正在比阿尼機的文件中,否則就會使它變成亂碼;

sed的默認操作時輸出每個輸入行。-n選項可以阻止自動輸出。當指定該選項時,每個要生成輸出的指令都必須包含打印命令P

sed -e 編輯隨後的指令 sed -f 跟隨腳本中的文件名 sed -n 阻止輸入行的自動輸出 sed -i 修改原文件

Linux--sed使用