自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

聊聊Sed常用操作盤點

系統(tǒng) Linux
匹配到第一個和最后一個的全部打印出來,所以要取9點到10點的日志要打印到11點第一條就能確保9點到10點的都打出來了。直接寫日期和正則的區(qū)別是一個精確匹配一個模糊匹配。

[[407937]]

本文轉(zhuǎn)載自微信公眾號「新鈦云服」,作者秦鳴。轉(zhuǎn)載本文請聯(lián)系新鈦云服公眾號。

本文詳細介紹sed -n參數(shù)、-I參數(shù)、-e參數(shù)的使用,并用例子進行說明。內(nèi)容提要:

-n參數(shù)

  • 實例:選取一段時間的日志

......

-i參數(shù)

  • 實例:刪除第一行
  • 實例:刪除2-5行
  • 實例:刪除每行最后兩個字符
  • 實例:刪除每行前兩個字符
  • 實例:刪除行首的空格
  • 實例;刪除空行
  • 第一行上添加一行內(nèi)容
  • 替換內(nèi)容

......

-e參數(shù)

  • -e與不加-e的區(qū)別
  • 常用實例sed獲取ip

......

-n參數(shù)

只打印模式匹配的行。

實例:選取一段時間的日志

  • 日期在日志中間的例子
  1. # sed -n '/2019-07-23 09:[0-9][0-9]:[0-9][0-9]/,/2019-07-23 11:[0-9][0-9]:[0-9][0-9]/p' 20190723_teacher.log 

注意:該方法后面的時間會選取你該小時的第一條,剩余的不會選取

  • 日期在日志開頭的例子:
  1. # sed -n '/2019-07-23 09:25:55/,/2019-07-23 10:25:55/p' accessSuccess.log 

查看某時間段到現(xiàn)在的系統(tǒng)日志

  1. # sed -n '/Jun 21 12/,$p' /var/log/messages | less 

問題:能夠根據(jù)時間來查日志的原理是什么?直接寫日期的和正則的有什么區(qū)別

原理是匹配到第一個和最后一個的全部打印出來,所以要取9點到10點的日志要打印到11點第一條就能確保9點到10點的都打出來了。直接寫日期和正則的區(qū)別是一個精確匹配一個模糊匹配。

-i參數(shù)

直接修改讀取的文件內(nèi)容,而不是輸出到終端。

實例:刪除第一行

  1. # sed -i '1d' 1.sql 

實例:刪除2-5行

  1. # sed -i '2,5d' 1.sql 

實例:刪除每行最后兩個字符

  1. # sed -i 's/..$//' 1.sql 

實例:刪除每行前兩個字符

  1. # sed -i 's/..//' 1.sql 

實例:刪除行首的空格

  1. # sed -i 's/^[[:space:]]*//' 1.sql 
  2. # sed -i 's/^[ ]*//' 1.sql 
  3. # sed -i 's/^ *//' 1.sql 

實例:刪除空行

  1. # sed -i '/^$/d' 1.sql 

刪除配置文件中//號注釋行

  1. # sed -i 's#//.*##g' 1.sql 

刪除配置文件中#號注釋行

  1. # sed -i 's#\#.*##g' 1.sql 

刪除最后一行

  1. # sed -i '$d' 1.sql 

刪除第一個字符

  1. # sed 's/^.//g' 1.sql 

第一行上添加一行內(nèi)容

  1. # sed -i '1i insert into adid_intention values ' 1.sql 

插入字符,匹配文本中B開頭的行,行尾追加2008

  1. # sed -i 's/B.*/&2008/' 1.sql 

插入字符,匹配文本中B開頭的行之前追加2008

  1. # sed -i 's/B.*/2008&/' 1.sql 

替換內(nèi)容,例如將2-5行的內(nèi)容替換成case

  1. # sed -i '2,5c case' 1.sql 

將所有以d或D開頭的行里所有的x變成X

  1. # sed '^[dD]/s/x/X/g' 1.sql 

替換內(nèi)容,把aaa替換成bbb

  1. # sed -i 's/aaa/bbb/' 1.sql 
  2. # sed -i 's/aaa/bbb/g' 1.sql 
  3. # sed -i '1,\$s#bbb#aaa#g' 1.sql 
  4. 備注:這兩種命令格式的區(qū)別在于是否有個“g”。沒有“g”表示只替換第一個匹配到的字符串,有“g”表示替換所有能匹配到的字符串,“g”可以認為是“global”(全局的)的縮寫,第三條1代表第一行,$代表最后一行,1,$代表從第一行到最后一行 

分隔符可以任意

  1. # sed -i 's#bbb#aaa#g' 1.sql 

 

 

 

-e參數(shù)

-e與不加-e的區(qū)別

-e 可以在同一行里執(zhí)行多條命令,不加 -e 只有 's/11/00/g' 進行了操作

  1. # sed 's/11/00/g' 's/22/99/g' 1.sql 
  2. sed:無法讀取 s/22/99/g:沒有那個文件或目錄 
  3. a,aaa,aaa,aaa,a00 
  4. a,aaa,aaa,aaa,a22 
  5. a,aaa,aaa,aaa,a00 
  6. Ba,aaa,axa,aaa,a22 
  7. a,aaa,aaa,aaa,a 

加上 -e 時 's/11/00/g' 與 's/22/99/g' 都進行了操作

  1. # sed -e 's/11/00/g' -e 's/22/99/g' 1.sql 
  2. a,aaa,aaa,aaa,a00 
  3. a,aaa,aaa,aaa,a99 
  4. a,aaa,aaa,aaa,a00 
  5. Ba,aaa,axa,aaa,a99 
  6. a,aaa,aaa,aaa,a 

常用實例:sed獲取ip

  1. # ifconfig en0 | sed -e '/inet /!d' //匹配inet 的不刪除 
  2. # ifconfig en0 | sed -e '/inet /!d' -e 's/^.*inet//g' //把開頭到inet部分替換刪除 
  3. # ifconfig en0 | sed -e '/inet /!d' -e 's/^.*inet//g' -e 's/netmask.*$//g' //把netmask到結(jié)尾替換刪除 
  4. # ifconfig en0 | sed -e '/inet /!d' -e 's/^.*inet//g' -e 's/netmask.*$//g' -e 's/[[:space:]]*//g' //最后去掉首位空格 

常用實例:處理以下文件內(nèi)容,將域名取出并根據(jù)域名進行計數(shù)排序處理

  1. # cat aaa.log 
  2. http://www.tyun.cn/index.html 
  3. http://www.tyun.cn/1.html 
  4. http://post.tyun.cn/index.html 
  5. http://mp3.tyun.cn/index.html 
  6. http://www.tyun.cn/3.html 
  7. http://post.tyun.cn/2.html 
  8.  
  9. # sed -e 's#^.*//\(.*tyun.*\)/.*html#\1#gp' aaa.log | sort | uniq -c | sort -rn 

 

責任編輯:武曉燕 來源: 新鈦云服
相關(guān)推薦

2021-03-11 00:07:30

線程Thread程序

2010-07-05 12:40:56

SQL Server

2020-05-13 17:15:49

CPUPC處理器

2021-08-19 10:30:13

Java集合排序程序開發(fā)

2021-11-26 00:02:00

模式正則修飾符

2021-07-26 05:20:47

JavaScript解構(gòu)賦值數(shù)組解構(gòu)

2024-07-17 11:35:31

JavaScript解構(gòu)賦值

2024-09-10 15:34:18

JavaScript解構(gòu)賦值

2024-06-18 10:28:46

2023-09-01 08:59:57

2021-08-16 06:56:21

Slice數(shù)組類型內(nèi)存

2021-03-24 09:37:41

數(shù)據(jù)類型數(shù)據(jù)分析數(shù)據(jù)的分類

2010-09-06 09:25:42

Web應用程序

2023-01-31 08:48:49

Go語言文件

2022-11-28 07:21:53

操作系統(tǒng)內(nèi)存管理

2023-02-26 14:34:18

OSW操作系統(tǒng)監(jiān)控

2010-04-19 17:39:50

Unix操作系統(tǒng)

2020-06-04 18:30:06

二手硬件CPU主板

2022-03-09 09:39:22

Python函數(shù)模塊

2023-11-10 08:04:43

Java 17Java 11JDK
點贊
收藏

51CTO技術(shù)棧公眾號