日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux-----shell高级编程----sed应用

發布時間:2025/4/5 linux 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux-----shell高级编程----sed应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? 背景

????sed是一個很好的文件處理工具,本身是一個管道命令,主要是以行為單位進行處理,可以將數據行進行替換、刪除、新增、選取等特定工作.

sed意為流編輯器(StreamEditor),在Shell腳本和Makefile中作為過濾器使用非常普遍,也就是把前一個程序的輸出引入sed的輸入,經過一系列編輯命令轉換為另一種格式輸出。sed和vi都源于早期UNIX的ed工具,所以很多sed命令和vi的末行命令是相同的。


sed命令行格式為:?

????sed option 'script' file1 file2 ...

????sed option -f scriptfile file1 file2 ...


常用參數:

--version

顯示sed版本

--help

顯示幫助文檔

-n?
取消默認輸出
-e指定多個指令執行
-i
修改文件內容(默認不修改原文件內容)
-r
使用擴張正則表達式

輸出占位符

a(append)

追加

i(insert)
插入
d(delete)
刪除
s(substitution)

替換

p(print)
打印


主要的介紹了這么多,下面開始實踐(實踐中出真理)

????1. 顯示第二行

????原始數據

????


[#20#sea@~?22:06:04]$sed?'2p'?test.txt

????

????此時我們發現 [bbbbb.....bbb] 多輸出一行,證明2p打印了第二行, 此時我們發現原始數據也打印了,不符合題意.

?

???

? ?此時加上 [ -n ]參數, 精確只打印第二行



?????2. 使用 -e 多條語句 輸出指定行的數據

????????原始數據

????????

????

[#23#sea@~?22:06:04]$?sed?-n?-e?'2p'?-e?'4p'?test.txt

? ??



? ?3.?輸假設一個文本(test.txt)中有1-100行數據,要求打印出20-30行數據

? ? 首先我們利用循環機制模擬出100行數據

[#24#sea@~?22:06:04]$?for?i?in?`seq?100`;?do?echo?$i?>>?test.txt?;?done

???? ?利用wc -l 查看文件行數

[#25#sea@~?22:32:29]$wc?-l?test.txt

????


????題目實現如下

????



注:sed 的功能不止如此,因時間和生產環境有限,更詳細的sed介紹文章將后續發布, 敬請關注.

????

轉載于:https://blog.51cto.com/lisea/1795754

總結

以上是生活随笔為你收集整理的linux-----shell高级编程----sed应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。