<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
- 行編輯工具: 一行一行處理檔案內容,例如:sed - 全螢幕編輯工具:一次性將檔案所有內容載入到記憶體中,例如:vi、vim、nano
逐行處理檔案內容,一次讀取一行內容到模式空間處理。由此反覆,知道最後一行處理完成。
# 處理:可以是輸出到螢幕,也可以是文字的修改替換等操作 # 模式空間:就是一塊記憶體空間
sed [option] 'script' [inputfile] #script: sed自身的指令碼,sed自身語法的一種指令碼 #inputfile: 檔案,如果不寫檔案就對標準輸入的內容進行處理
sed '' filename #''裡面的指令碼內容不能省略 #不輸入指令碼就是讀入什麼就預設列印什麼 --- sed內建了自動列印的功能
-n:關閉sed的自動列印 -e:多點編輯(一次更改多個內容) -r,-E:使用正規表示式 -i.bak 先把檔案做個備份然後再改 -s:將多個檔案視為單獨的檔案
sed指令碼:由位置(地址)和指令組合而成
表示對全文進行處理
表示處理指定的行。
#指定的行可以通過數位直接指定,也支援正規表示式匹配。 #寫正規表示式的格式:/pattern/
(n,m):表示從n行開始,到m行結束這個範圍的內容。
#地址範圍也可以使用正規表示式表示: /pat1/,/pat2/ (第一個正規表示式之後到下一個正規表示式中間的內容)
p --- 內容列印 Ip --- 忽略大小寫輸出 d --- 把模式空間內容刪除掉,不再自動列印了 a --- 再某些行後面加內容 i --- 再某些行前面加內容 c --- 替換某一行的內容 w --- file 另存為指定檔案 r --- 把一個檔案內容讀到當前匹配到的行中 = --- 某一行前面新增行號 ! --- 除了某一行的意思 q --- 結束或退出sed #搜尋替代 s/pattern/string/修飾符 --- 查詢替換,支援使用其它分隔符
#sed基本用法:自動列印 #檢視某個檔案的文字內容 sed '' dir.sh #列印指定行的內容 sed -n '3p' /etc/passwd #需要使用-n關閉自動列印,因為如果使用了自動列印會輸出所有內容,-p:列印匹配到的內容 #列印出包含root的行 sed -n '/root/p' /etc/passwd #列印從第三行到第六行的內容: sed -n '3,6p' /etc/passwd #列印以r開頭到以g開頭的行的中間那些行 sed -n '/^r/,/^g/p' /etc/passwd #找到了第一個滿足條件的範圍後不會停止,還會繼續往下面找。 #列印奇數行 sed -n '1~2p' /etc/passwd #從1開始,每次步進2
#搜尋替代的格式: s/pattern/string/修飾符 #支援使用其它分隔符,可以是其它形式:s@@@,s### s/模式/替代的字串/修飾符
g --- 行內全域性替換 p --- 顯示替換成功的行 w --- /PATH/FILE 將替換成功的行儲存至檔案中 I,i --- 忽略大小寫 # &符號:待變前面搜尋出來的內容。 相當於一個變數,儲存搜尋出來的內容
小括號實現分組,後面要表示第幾個分組的內容就用 num(第幾個小括號裡面的內容) #分組實現把一個檔案的一行切成多塊,保留其中之一
#sed分組的實現 --- 分組使用的是小括號(直接小括號是擴充套件正規表示式,不加r引數用的是基本正規表示式) echo abc123xyz | sed -r 's/(abc)(123)(xyz)/1/' #輸出abc 值留下了第一個分組 #搜尋替換和& --給前面特定的內容後面加內容 sed -nr 's/r..t/&er/gp' /etc/passwd #給搜尋到的內容加上er結尾 #獲取分割區利用率 #獲取指定網路卡的ip地址: ifconfig ens33 | sed -nr '2s/.*inet ([0-9.]+) .*/1/p' #行首一直到inet 中間空格 #一個以上的數位或點 空格 一直到結尾 ifconfig ens33 | sed -rn '2s/(.*inet )([0-9].*)(netmask.*)/2/p' #行首一直到inet,中間空格 #數位 #取基名和目錄名 echo "/etc/netplan/01-netcfg" | sed -nr 's#.*/([^/]+)#1#p' #結果為 01-netcfg #從任意字元開始到以斜槓結尾,然後以非斜槓開頭的內容 #使用sed將selinux改為disabled sed -r -i.bak '/^SELINUX=/s/(SELINUX=).*/1disabled/' /etc/selinux/config # 取檔案的字首和字尾 echo a.b.c.tar | sed -nr 's/(.*).([^.]+)$/2/p' #將非#開頭的行加# sed -rn 's/^[^#]/#&/p' /etc/fstab 或 #sed -rn 's/^[^#](.*)/#1/p' /etc/fstab #將#開頭的行刪除# #sed -ri.bak '/^#/s/^#//' /etc/fstab #刪除指定的行 cat /etc/passwd | sed '/tom/d' #刪除含有root的行 cat /etc/passwd | sed '4-10d' #刪除第四行到第十行的內容
模式空間:pattern space,存放sed需要處理哪一行資料(一個緩衝區) 保持空間:Hold Space,臨時存放模式空間中的資料(一個臨時空間)
#模式空間內容-->保持空間 小寫覆蓋,大寫追加 h 模式空間的內容覆蓋到保持空間 H 模式空間的內容追加到保持空間(內容追加) #保持空間內容--->模式空間 g 保持空間資料覆蓋模式空間 G 保持空間內容追加模式空間 #內容互換 x 兩者內容互換 #匹配到的下一行內容--->模式空間 n 匹配行的下一行覆蓋至模式空間 N 匹配行的下一行追加至模式空間 #刪除 d 清空模式空間 D 刪除模式空間第一行
#因為sed的指令碼使用單引號括起來的,單引號屬於強參照。所見即所得。 #例如:列印含有root的行 name=root cat /etc/passwd | sed -nr "/$name/p" #如果裡面的內容本來就帶雙引號的,所以就不能再在外面使用雙引號。 解決方法;cat /etc/passwd | sed -nr '/'$name'/p' #再加一個單引號把變數括起來 把'/'和'/p'成對了,變數空出來了 #多點編輯並呼叫變數 #使用變數的方式修改httpd的組態檔 servername和port cat /etc/httpd/conf/httpd.conf | sed -nr -e 's/^(Listen) 80/1 '$port'/p' -re "/#ServerName /c ServerName= `hostname`:$port/p" #或者: cat /etc/httpd/conf/httpd.conf | sed -nr -e 's/^(Listen) 80/1 '$port'/p' -re '/#ServerName /c ServerName= '$(hostname)':'$port'/p' # $(command) #把包含ServerName的這一行替換成: ServerName: 主機名:埠
#sed實現修改預設的網路卡名 cat /etc/default/grub | sed -nr 's/^(GRUB_CMDLINE_LINUX=.*)"$/1 net.ifnames=0"/p' #列印偶數行 seq 10 | sed -n 'n;p' #n:讀取到的行的下一行 #比如首先讀取到的是第一行,因為有n,所以就以讀到的內容的下一行內容覆蓋當前讀到的內容到模式空間,所以第一次輸出2. seq 10 | sed -n '2~2p' #使用步進的方式實現 seq 10 | sed -n '1~2!p' #!表示除了這些行,其他的都列印
到此這篇關於Linux sed工具的使用的文章就介紹到這了,更多相關Linux sed工具內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45