--字串
字串的初值(備用值),變數非空是不可使用
$正規表示式 可以配合某工具對文件進行過濾篩選
grep '^root' user //以root開頭的行
grep 'bash$' user //以bash結尾的行
grep '[0-9]' user //篩選出0-9的數字
grep '[^0-9]' user //排除所有0-9的數字
grep 'roo.' user //篩選roo開頭的匹配單個字元
grep 'ro*t' user //篩選出現任意次o的字元,可以是0次---rt rot rooooot
像 小部件
grep "0:0:\" user //篩選0:出現兩次的字串
擴充套件正規表示式
影象 小部件可以對文字檔案進行非互動式增刪改查,逐行處理
sed使用方式
1.前置命令|sed 選項 (定址符)指令o
2.sed 選項(定址符)指令 被處理檔案
選項-n 遮蔽預設輸出
-r 支援擴充套件正則
-i 寫入檔案
指令p 輸出
d 刪除
s 替換
[root@svr5 ~]# sed 'd' /etc/passwd //刪除所有行
[root@svr5 ~]# cat /etc/passwd //檢視原始文字,並未改動
[root@svr5 ~]# sed -i '1,4d' test.txt //刪除操作
[root@svr5 ~]# cat test.txt //確認刪除結果
[root@svr5 ~]# sed -n 'p' a.txt //輸出所有行,等同於cat a.txt
[root@svr5 ~]# sed -n '4p' a.txt //輸出第4行
[root@svr5 ~]# sed -n '4,7p' a.txt //輸出第4~7行
[root@svr5 ~]# sed -n '4,+10p' a.txt //輸出第4行及其後的10行內容
[root@svr5 ~]# sed -n '/^bin/p' a.txt //輸出以bin開頭的行
[root@svr5 ~]# sed -n '$=' a.txt //輸出檔案的行數
[root@svr5 ~]# sed 's/xml/xml/' a.txt //將每行中第乙個xml替換為xml
[root@svr5 ~]# sed 's/xml/xml/3' a.txt //將每行中的第3個xml替換為xml
[root@svr5 ~]# sed 's/xml/xml/g' a.txt //將所有的xml都替換為xml
[root@svr5 ~]# sed 's/xml//g' a.txt //將所有的xml都刪除(替換為空串)
[root@svr5 ~]# sed 's#/bin/bash#/sbin/sh#' a.txt //將/bin/bash替換為/sbin/sh
[root@svr5 ~]# sed '4,7s/^/#/' a.txt //將第4~7行注釋掉(行首加#號)
[root@svr5 ~]# sed 's/^#an/an/' a.txt //解除以#an開頭的行的注釋(去除行首的#號)
1)刪除檔案中每行的第二個、最後乙個字元
分兩次替換操作,第一次替換掉第2個字元,第二次替換掉最後乙個字元:
[root@svr5 ~]# sed 's/.//2 ; s/.$//' nssw.txt
2)將檔案中每行的第乙個、倒數第1個字元互換
每行文字拆分為「第1個字元」、「中間的所有字元」、「倒數第1個字元」三個部分,然後通過替換操作重排順序為「3-2-1」:
[root@svr5 ~]# sed -r 's/^(.)(.*)(.)$/\3\2\1/' nssw.txt
3)刪除檔案中所有的數字
因原檔案內沒有數字,行首也沒有空格,這裡稍作做一點處理,生成乙個新測試檔案:
[root@svr5 ~]# sed 's/[0-9]//' nssw.txt
4)為檔案中每個大寫字母新增括號
[root@svr5 ~]# sed -r 's/([a-z])/[\1]/g' nssw.txt
刪除所有數字、行首空格的操作如下:
[root@svr5 ~]# sed -r 's/[0-9]//g;s/^( )+//' nssw2.txt
案例1)任務需求及思路分析
vsftpd服務的安裝、改目錄許可權、起服務等操作可以直接寫在指令碼中。
修改vsftpd.conf配置的工作可以使用sed命令,根據預設配置,只需要定位到以#anon開頭的行,去掉開頭的注釋即可。
2)根據實現思路編寫指令碼檔案:
[root@svr5 ~]# vim anonftp.sh
#!/bin/bash
yum -y install vsftpd //安裝vsftpd軟體
cp /etc/vsftpd/vsftpd.conf //備份預設的配置檔案
sed -i "s/^#anon/anon/" /etc/vsftpd/vsftpd.conf //修改服務配置
chmod 777 /var/ftp/pub //調整目錄許可權
systemctl start vsftpd //啟動服務
systemctl enable vsftpd //設為自動執行
[root@svr5 ~]# chmod +x anonftp.sh
[root@svr5 ~]# ./anonftp.sh
sed 正規表示式
如果testfile的內容是 welcome to the world of regexp 現在要去掉所有的html標籤,使輸出結果為 hello world welcome to the world of regexp 怎麼做呢?如果用下面的命令 sed s g testfile 結果是兩個空行,...
sed 常用正規表示式
1.乙個比較實用的正規表示式 匹配html的嵌入 匹配 的嵌入碼 刪除僅由空字元組成的行 sed space d filename 匹配html標籤 例如 從html檔案中剔除html標籤 sed s g space d file.html 例如 要從下列 中去除 及其中包括的 b 4c6c2a65...
Linux正規表示式 sed
相比於grep,sed可以替換內容並輸出到螢幕上。sed 選項 動作 filename選項 n 將經過sed命令處理過的行輸出到螢幕 e 允許對輸入資料應用多條sed命令 i 用sed的修改結果直接修改所讀取的檔案 動作 d 刪除 p 列印 s 字串替換 本行 g 本行全域性替換 列印 etc pa...