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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sed命令学习

發布時間:2023/12/2 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sed命令学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

sed編輯器,處理文本過程如下:

sed把當前處理的行保存在一個臨時緩沖區中,然后處理緩沖區中的行,完成后把該行發送到屏幕上。sed每處理完一行就將其從臨時緩沖區刪除,然后下一行讀入,處理和顯示。處理完輸入文件的最后一行后,sed便結束運行。

sed [參數] '命令' file

sed中模式空間(臨時)和保持空間

?

?

passwd代表文件名

1,查詢語句?

輸出第三行

?sed -n '3p' passwd

輸出第3 到5行

?sed -n '3,5p' passwd

刪除第3到5行

?sed -n '3,5d' passwd

表示查詢出passwd文件中存在sbin字符的所有行并打印出來,其中兩個/表示的是其中的是正則表達式,-n和/p是該命令的參數,需要聯合使用:

sed -n ‘/sbin/p’ passwd?

?

2,緊跟在s命令后的字符就是查找串和替換串之間的分隔符。分隔符默認為正斜杠,但可以改變。無論什么字符(換行符、反斜線除外),只要緊跟s命令,就成了新的串分隔符:

head -3 passwd | sed 's#bin#Replace#g

sed -n '1,3s' 's#bin#Replace#g' passwd

e選項:用于sed執行多個指令,指令放置順序對最終結果有影響

?head -5 passwd | sed -e '1,3d' -e 's/sh/Replace/g'

r命令:當匹配到bin時,就讀入文件的內容

head -3 passwd | sed '/bin/r append.txt'

w命令:匹配到時,寫入到文件中

sed?-n?'/hrwang/w me.txt'?datafile

a\命令:匹配到時追加到文件中

sed?'/^hrwang/a\ append this line to file datafile

q命令:q命令將導致sed程序退出,不再進行其它的處理

sed?'/hrwang/{s/hrwang/HRWANG/;q;}'?datafile

?

3,sed命令:沒有重定向不會真正修改源文件中的內容。sed不會更改文件內容

  重定向指令為?>

  或者使用指令 -i, 直接修改文件內容,不過-i會額外添加一行,造成誤解,不可用

?

4,新增語句:

  sed '1a the content append to file' passwd

  sed '1i the content inset to the forward of first line' passwd

  sed '1c replace the first line of file to this content' passwd

  sed 's/false/true/' passwd # replace false in this line to true

  sed '/hello/aworld' mk ##a代表指定行后增加新行

  sed 's/hello/hello world/g' mk

  sed 's/hello/hello\nworld/g' mk

?

?

5 刪除語句:

  sed '/postgres/d' passwd # delete the line suit this rule

  sed '2d' passwd # delete the second line

  sed '/^UUID/d' mk

  sed '/^$/d' mk

?

6 替換語句:

  修改并修改文件

  sed? -i '/s/cpu_core=8/cpu_core=72/' mk?

  如果使用 ‘s/cpu_core=8/cpu_core=72/p' mk 此行后會新加一行cpu_core=72;

  如果末尾加g,說明是全局替換

  sed -i 's/westos/redhat/g' passwd

  整行替換

  sed '/hello/chello world' mk

  使用i命令向數據流插入文本行,i命令會在指定行前增加一個新行

  sed '/hello/iworld\nlee' mk

?

7 打印文本:

  sed -n '/\:/p' mk

  sed -n '/^#/p' mk

  sed -n '/^#/!p' mk

  sed -n '1~2p' mk ##打印奇數行

  sed -n '2~2p'? mk ##打印偶數行

?

8 參數:

  -e 默認情況:在處理輸入時。sed后面直接添加編輯命令

  當一條sed中執行多個編輯命令時,-e才有意義,且不可省略,其他無意義

  -n參數:不會把緩沖區內容輸入到屏幕上,結合p指令使用,只輸出匹配的行

   sed -n '/^#/p' lee_temp #輸出以#開頭行

   sed -n '/n$/p' lee_temp #輸出以n結尾行

   sed -n 's///gp' #加g與不加g的區別是,加g意味著全行進行指令操作,不加的話,只將指令運用于第一個匹配到的位置

?

轉載于:https://www.cnblogs.com/lixiangfu/p/11207567.html

總結

以上是生活随笔為你收集整理的sed命令学习的全部內容,希望文章能夠幫你解決所遇到的問題。

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