命令“ sed” 在GNU / Linux類型的自由操作系統中,它是一個非常通用的命令,因為反過來 它被認為是面向“流”而不是典型的“交互”的文本編輯器,因為它接受文件或標準輸入作為輸入,然後處理每一行並將結果發送到標準輸出。 也就是說, SED(流EDitor)使我們能夠基於一系列命令或命令文件來修改文件不同行的內容。
通常,命令“ sed”用作過濾器,因為它會讀取數據條目的每一行,然後執行通常讀取,提取,修改,顯示或保存的請求的操作。 雖然它的力量是如此 此外,它還使我們能夠以舒適的方式刪除行,記錄或替換文件行中的字符串。
“ sed”命令簡介
已經在之前的其他出版物中 DesdeLinux 我們已經討論並展示了有關使用所述命令的範例,例如: 如何從文件中刪除特定行... y 帶終端:使用正則表達式II:替換,因此這次我們將直接看到更高級的示例,並且是使用它的一些實際示例。
基本上,命令“ sed”具有以下語法:
sed comandos_sed archivo
哪裡 “ Command_sed” 對應於關於如何處理從中讀取的行的一項或多項規範 “存檔”。
更廣泛的使用使我們有了以下語法:
sed [-ns] '[direccion] instruccion argumentos'
其中:
實際例子
列出路徑中的文件/文件夾
有用的命令行,可用於列出指定的X路徑的內容,然後檢測/計數/過濾搜索到的項目並指示要執行的後續操作。
ls -l | awk '{ print $NF }' | sed 1d
例如:
使用“ sed”命令的另一個變體非常有用:
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed 's/^\.\///g' | xargs -n 1 basename
創建一個數字序列
在屏幕上顯示或將創建的數值序列(或任何其他輸入)保存在文件中,但以水平(線性)而非垂直的方式保存,以後可以為其他過程讀取。
seq 100|tr '\n' ' '|sed 's, $,\n,g'
可以通過組合命令«口渴” 同 “ Printf” 如下所示:
printf '%s ' {1..100}|sed 's/ $/\n/'
刪除帶有排除項的文件
檢查文件系統路徑以查找要排除的文件模式,然後刪除其餘內容。 對於精確和仔細的清潔非常有用。
find /opt/MilagrOS/file-apps/fondos_pantalla/ -type f | sed -e '/.*\.txt$/d' -e '/.*\.exe$/d' | xargs rm
創建一個虛擬MAC地址
當瀏覽危險站點或執行黑客任務時,此步驟對於計算機安全或保護任務很有用。
MAC=`(date; cat /proc/interrupts) | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'` ; echo $MAC
結合使用“ sed”命令和其他命令可以達到相同的效果,如下所示:
openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//'
od -An -N10 -x /dev/random | md5sum | sed -r 's/^(.{10}).*$/\1/; s/([0-9a-f]{2})/\1:/g; s/:$//;'
od /dev/urandom -w6 -tx1 -An|sed -e 's/ //' -e 's/ /:/g'|head -n 1
例如:
臨時更改終端提示
這可以幫助我們在提示中臨時插入參數,這些參數在我們執行特殊活動時可能對我們有用。 在此示例中,我們將僅更改提示的顯示方式。
export PS1="C:\$( pwd | sed 's:/:\\\\\\:g' )\\> "
管理“ ps”命令的輸出
非常實用的命令順序,用於格式化《 ps》命令的輸出,即從終端進程管理器中獲取的命令。
sudo ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed "/^ 0.0 /d"
例如:
可以根據消耗的內存百分比將其應用於進程:
sudo ps -e -o pmem,nice,state,cputime,args --sort pmem | sed "/^ 0.0 /d"
這些命令行示例使用命令“ sed”,希望您發現它非常有用。 它們可以直接從控制台使用,也可以通過將其插入腳本(自動任務)間接使用。
在關於Shell腳本的下一篇文章中,我們將探索其他命令。
如果您想了解有關“ sed”命令的更多信息,請訪問此鏈接“Unix和Linux教程和簡要指南“要么”基本用途»並且如果您想在我們自己的博客中了解有關Shell腳本的更多信息,您可以通過單擊此處查看我們在該主題上的其他出版物: 腳本編寫 DesdeLinux.