校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > shell腳本--sed的用法詳解

shell腳本--sed的用法詳解

熱門標簽:合肥電銷外呼系統供應商 地圖標注審核周期 如何申請400的電話呀 黑暗之魂3地圖標注 蘭州電銷機器人加盟 電商外呼系統排名 沈陽ai電銷智能機器人 AI智能電銷機器人壞處 電話機器人對家居行業幫助大嗎

sed在處理文本時是逐行讀取文件內容,讀到匹配的行就根據指令做操作,不匹配就跳過。

sed是Linux下一款功能強大的非交互流式文本編輯器,可以對文本文件進行增、刪、改、查等操作,支持按行、按字段、按正則匹配文本內容,靈活方便,特別適合于大文件的編輯。本文主要介紹sed的一些基本用法,并通過shell腳本演示sed的使用實例。

1.sed的使用方法,調用sed 命令的語法有兩種:

一.在命令行指定sed指令對文本進行處理:sed +選項  ‘指令' 文件

二.先將sed指令保存到文件中,將該文件作為參數進行調用:sed   +選項  -f  包含sed指令的文件  文件

sed的常用選項:

-r:使用擴展正則表達式

-e:它告訴sed將下一個參數解釋為一個sed指令,只有當命令行上給出多個sed指令時才需要使用-e選項

-f:后跟保存了sed指令的文件

-i:直接對內容進行修改,不加-i時默認只是預覽,不會對文件做實際修改

-n:取消默認輸出,sed默認會輸出所有文本內容,使用-n參數后只顯示處理過的行

sed中的編輯命令:

a:追加  向匹配行后面插入內容

c:更改  更改匹配行的內容

i:插入  向匹配行前插入內容

d:刪除  刪除匹配的內容

s:替換  替換掉匹配的內容

p:打印  打印出匹配的內容,通常與-n選項和用

=:用來打印被匹配的行的行號

n:讀取下一行,遇到n時會自動跳入下一行

r,w:讀和寫編輯命令,r用于將內容讀入文件,w用于將匹配內容寫入到文件

2.sed命令實例:

示例1:向文件中添加或插入行

sed '3ahello' 1.txt #向第三行后面添加hello,3表示行號

sed '/123/ahello' 1.txt #向內容123后面添加hello,如果文件中有多行包括123,則每一行后面都會添加

sed '$ahello' 1.txt #在最后一行添加hello

sed '3ihello' 1.txt #在第三行之前插入hello

sed '/123/ihello' 1.txt #在包含123的行之前插入hello,如果有多行包含123,則包含123的每一行之前都會插入hello

sed '$ihello' 1.txt #在最后一行之前插入hello

示例2:更改文件中指定的行

sed '1chello' 1.txt #將文件1.txt的第一行替換為hello

sed '/123/chello' 1.txt #將包含123的行替換為hello

sed '$chello' 1.txt #將最后一行替換為hello

示例3:刪除文件中的行

sed '4d' 1.txt #刪除第四行

sed '1~2d' 1.txt #從第一行開始刪除,每隔2行就刪掉一行,即刪除奇數行

sed '1,2d' 1.txt #刪除1~2行

sed '1,2!d' 1.txt #刪除1~2之外的所有行

sed '$d' 1.txt #刪除最后一行

sed '/123/d' 1.txt #刪除匹配123的行

sed '/123/,$d' 1.txt #刪除從匹配123的行到最后一行

sed '/123/,+1d' 1.txt #刪除匹配123的行及其后面一行

sed '/^$/d' 1.txt #刪除空行

sed '/123\|abc/!d' 1.txt #刪除不匹配123或abc的行,/123\|abc/ 表示匹配123或abc ,!表示取反

sed '1,3{/123/d}' 1.txt #刪除1~3行中,匹配內容123的行,1,3表示匹配1~3行,{/123/d}表示刪除匹配123的行

示例4:替換文件中的內容

sed 's/123/hello/' 1.txt #將文件中的123替換為hello,默認只替換每行第一個123

sed 's/123/hello/g' 1.txt #將文本中所有的123都替換為hello

sed 's/123/hello/2' 1.txt #將每行中第二個匹配的123替換為hello

sed -n 's/123/hello/gpw 2.txt' 1.txt #將每行中所有匹配的123替換為hello,并將替換后的內容寫入2.txt

sed '/#/s/,.*//g' 1.txt #匹配有#號的行,替換匹配行中逗號后的所有內容為空 (,.*)表示逗號后的所又內容

sed 's/..$//g' 1.txt #替換每行中的最后兩個字符為空,每個點代表一個字符,$表示匹配末尾 (..$)表示匹配最后兩個字符

sed 's/^#.*//' 1.txt #將1.txt文件中以#開頭的行替換為空行,即注釋的行 ( ^#)表示匹配以#開頭,(.*)代表所有內容

sed 's/^#.*//;/^$/d' 1.txt #先替換1.txt文件中所有注釋的空行為空行,然后刪除空行,替換和刪除操作中間用分號隔開

sed 's/^[0-9]/()/' 1.txt #將每一行中行首的數字加上一個小括號 (^[0-9])表示行首是數字,符號代表匹配的內容
#或者
sed 's/\(^[0-9]\)/(\1)/' 1.txt #替換左側特殊字符需鑰轉義,右側不需要轉義,\1代表匹配的內容

sed 's/$/'haha'/' 1.txt # 在1.txt文件的每一行后面加上"haha"字段

示例5:打印文件中的行

sed -n '3p' 1.txt #打印文件中的第三行內容

sed -n '2~2p' 1.txt #從第二行開始,每隔兩行打印一行,波浪號后面的2表示步長

sed -n '$p' 1.txt #打印文件的最后一行

sed -n '1,3p' 1.txt #打印1到3行

sed -n '3,$p' 1.txt #打印從第3行到最后一行的內容

sed -n '/you/p' 1.txt #逐行讀取文件,打印匹配you的行

sed -n '/bob/,3p' 1.txt #逐行讀取文件,打印從匹配bob的行到第3行的內容

sed -n '/you/,3p' 1.txt #打印匹配you 的行到第3行,也打印后面所有匹配you 的行

sed -n '1,/too/p' 1.txt #打印第一行到匹配too的行
sed -n '3,/you/p' 1.txt #只打印第三行到匹配you的行

sed -n '/too/,$p' 1.txt #打印從匹配too的行到最后一行的內容

sed -n '/too/,+1p' 1.txt #打印匹配too的行及其向后一行,如果有多行匹配too,則匹配的每一行都會向后多打印一行

sed -n '/bob/,/too/p' 1.txt #打印從匹配內容bob到匹配內容too的行

示例6:打印文件的行號

sed -n "$=" 1.txt #打印1.txt文件最后一行的行號(即文件有多少行,和wc -l 功能類似)

sed -n '/error/=' 1.txt #打印匹配error的行的行號
sed -n '/error/{=;p}' 1.txt #打印匹配error的行的行號和內容(可用于查看日志中有error的行及其內容)

示例7:從文件中讀取內容

sed 'r 2.txt' 1.txt #將文件2.txt中的內容,讀入1.txt中,會在1.txt中的每一行后都讀入2.txt的內容

sed '3r 2.txt' 1.txt #在1.txt的第3行之后插入文件2.txt的內容(可用于向文件中插入內容)

sed '/245/r 2.txt' 1.txt #在匹配245的行之后插入文件2.txt的內容,如果1.txt中有多行匹配456則在每一行之后都會插入

sed '$r 2.txt' 1.txt #在1.txt的最后一行插入2.txt的內容

示例8:向文件中寫入內容

sed -n 'w 2.txt' 1.txt #將1.txt文件的內容寫入2.txt文件,如果2.txt文件不存在則創建,如果2.txt存在則覆蓋之前的內容

sed -n '2w 2.txt' 1.txt #將文件1.txt中的第2行內容寫入到文件2.txt

sed -n -e '1w 2.txt' -e '$w 2.txt' 1.txt #將1.txt的第1行和最后一行內容寫入2.txt
sed -n -e '1w 2.txt' -e '$w 3.txt' 1.txt #將1.txt的第1行和最后一行分別寫入2.txt和3.txt

sed -n '/abc\|123/w 2.txt' 1.txt #將1.txt中匹配abc或123的行的內容,寫入到2.txt中

sed -n '/666/,$w 2.txt' 1.txt #將1.txt中從匹配666的行到最后一行的內容,寫入到2.txt中

sed -n '/xyz/,+2w 2.txt' 1.txt #將1.txt中從匹配xyz的行及其后2行的內容,寫入到2.txt中

示例9:sed 在shell腳本中的使用

實例1:替換文件中的內容

#!/bin/bash
if [ $# -ne 3 ];then  #判斷參數個數
 echo "Usage: $0 old-part new-part filename" #輸出腳本用法
 exit
fi
sed -i "s#$1#$2#" $3  #將 舊內容進行替換,當$1和$2中包含"/"時,替換指令中的定界符需要更換為其他符號

實例2:刪除文件中的空白行

#!/bin/bash
if [ ! -f $1 ];then  #判斷參數是否為文件且存在
 echo "$0 is not a file"
 exit
fi
sed -i "/^$/d" $1 #將空白行刪除

實例3:格式化文本內容

#!/bin/bash
a='s/^ *>// #定義一個變量a保存sed指令,'s/^ *>//':表示匹配以0個或多空格開頭緊跟一個'>'號的行,將匹配內容替換
s/\t*//   #'s/\t*//':表示匹配以0個或多個制表符開頭的行,將匹配內容替換
s/^>//  #'s/^>//' :表示匹配以'>'開頭的行,將匹配內容替換
s/^ *//'  #'s/^ *//':表示匹配以0個或多個空格開頭的行,將匹配內容替換
#echo $a
sed "$a" $1 #對用戶給定的文本文件進行格式化處理

實用腳本:批量更改當前目錄中的文件后綴名:

示例1:

#!/bin/bash
if [ $# -ne 2 ];then  #判斷用戶的輸入,如果參數個數不為2則打印腳本用法
 echo "Usage:$0 + old-file new-file"
 exit
fi
for i in *$1*    #對包含用戶給定參數的文件進行遍歷
do
 if [ -f $i ];then
 iname=`basename $i` #獲取文件名
 newname=`echo $iname | sed -e "s/$1/$2/g"`  #對文件名進行替換并賦值給新的變量
 mv $iname $newname  #對文件進行重命名
 fi
done
exit 666

示例2:

#!/bin/bash
read -p "input the old file:" old #提示用戶輸入要替換的文件后綴
read -p "input the new file:" new
[ -z $old ] || [ -z $new ]  echo "error"  exit #判斷用戶是否有輸入,如果沒有輸入怎打印error并退出
for file in `ls *.$old`
do
 if [ -f $file ];then
 newfile=${file%$old}   #對文件進行去尾
 mv $file ${newfile}$new   #文件重命名
 fi
done

示例3:

#!/bin/bash

if [ $# -ne 2 ];then #判斷位置變量的個數是是否為2
 echo "Usage:$0 old-file new-file"
 exit
fi
for file in `ls`   #在當前目錄中遍歷文件
do
 if [[ $file =~ $1$ ]];then #對用戶給出的位置變量$1進行正則匹配,$1$表示匹配以變量$1的值為結尾的文件
 echo $file   #將匹配項輸出到屏幕進行確認
 new=${file%$1}  #對文件進行去尾處理,去掉文件后綴保留文件名,并將文件名賦給變量new   
 mv $file ${new}$2  #將匹配文件重命名為:文件名+新的后綴名
 fi

done

示例4:使用sed匹配文件中的IP地址

sed -nr '/([0-9]{1,3}\.){3}([0-9]{1,3})/p' 1.txt

到此這篇關于shell腳本--sed的用法詳解的文章就介紹到這了,更多相關shell --sed內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 監控MySQL主從狀態的shell腳本
  • shell腳本使用兩個橫杠接收外部參數的方法
  • 使用Shell腳本如何啟動/停止Java的jar程序
  • Shell中使用grep、sed正則提取和替換字符串
  • Shell eval通過變量獲取環境變量的方法實現
  • shell腳本實戰-while循環語句
  • linux shell中 if else以及大于、小于、等于邏輯表達式介紹
  • Linux中執行shell腳本的4種方法總結
  • 一個不錯的shell 腳本教程 入門級
  • Shell字符串比較相等、不相等方法小結
  • python中執行shell命令的幾個方法小結
  • 分享一個可以通過命令簡寫執行對應命令的Shell腳本

標簽:隴南 淮南 通遼 常州 黔南 黔南 河池 河北

巨人網絡通訊聲明:本文標題《shell腳本--sed的用法詳解》,本文關鍵詞  shell,腳本,--sed,的,用法,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《shell腳本--sed的用法詳解》相關的同類信息!
  • 本頁收集關于shell腳本--sed的用法詳解的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    欧美丝袜丝交足nylons图片| 色久综合一二码| 亚洲成av人片在www色猫咪| 国产日产精品一区| 欧美精品一区二区三区蜜桃| 日韩免费成人网| 日韩免费性生活视频播放| 91 com成人网| 欧美videofree性高清杂交| 久久网站最新地址| 国产精品妹子av| 亚洲精品成人精品456| 一区二区三区欧美亚洲| 天天综合色天天综合色h| 日本欧美一区二区| 国产精品综合久久| 色香蕉成人二区免费| 欧美三级资源在线| 精品国产髙清在线看国产毛片 | 91在线免费视频观看| bt欧美亚洲午夜电影天堂| 色综合久久综合网欧美综合网| 欧美日韩一区二区在线观看视频| 7777精品伊人久久久大香线蕉的| 久久久精品免费网站| ●精品国产综合乱码久久久久| 亚洲一区二区三区四区在线| 久久er99热精品一区二区| 波多野结衣91| 欧美一区二区女人| 国产精品福利电影一区二区三区四区| 一区二区高清视频在线观看| 久久99热狠狠色一区二区| 99麻豆久久久国产精品免费| 欧美一卡二卡三卡| 中文字幕五月欧美| 久久精品国产秦先生| 成人禁用看黄a在线| 欧美一区欧美二区| 国产精品美女久久久久久久久久久 | 欧美午夜片在线看| 久久久99精品免费观看不卡| 亚洲午夜久久久久久久久久久| 久久99久久久久久久久久久| 色综合久久久久网| 久久九九久精品国产免费直播| 午夜精品在线视频一区| 99精品国产一区二区三区不卡| 91精品国产色综合久久不卡蜜臀 | 成人av电影在线播放| 日韩一区二区三区免费观看| 亚洲精选一二三| 成熟亚洲日本毛茸茸凸凹| 欧美成人r级一区二区三区| 亚洲国产成人精品视频| 91片黄在线观看| 欧美国产精品一区| 韩国av一区二区| 日韩一区二区免费电影| 亚洲国产视频直播| 欧美色图一区二区三区| 国产精品二区一区二区aⅴ污介绍| 韩国v欧美v日本v亚洲v| 欧美一级日韩不卡播放免费| 午夜电影久久久| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 成人h动漫精品一区二| 精品处破学生在线二十三| 亚洲v中文字幕| 欧美精品在线观看一区二区| 亚洲一区二区成人在线观看| 一本大道av伊人久久综合| 亚洲精品视频自拍| 色噜噜狠狠色综合中国| 亚洲精品欧美专区| 91国偷自产一区二区三区成为亚洲经典 | 在线免费观看日本欧美| 日韩一区欧美小说| 成人性生交大片免费看中文| 欧美韩日一区二区三区| 成人黄页在线观看| 国产精品激情偷乱一区二区∴| 成人免费看视频| 亚洲欧美日韩一区二区 | 国产精品理伦片| 91在线一区二区| 一区二区久久久| 欧美精品第一页| 激情小说欧美图片| 国产精品乱码一区二三区小蝌蚪| 9l国产精品久久久久麻豆| 一区二区三区中文字幕| 欧美一区二区在线免费播放| 久久成人久久爱| 国产精品久久久久久久久免费桃花| 成人伦理片在线| 亚洲自拍偷拍av| 日韩一级视频免费观看在线| 国产精品亚洲一区二区三区妖精| 中文字幕一区日韩精品欧美| 在线观看亚洲精品| 久久99国内精品| 中文字幕一区二区日韩精品绯色| 欧美在线播放高清精品| 免费成人结看片| 亚洲欧洲性图库| 欧美一二区视频| 不卡高清视频专区| 免费xxxx性欧美18vr| 国产精品理伦片| 日韩精品中文字幕一区| 色琪琪一区二区三区亚洲区| 老司机免费视频一区二区三区| 亚洲欧美在线aaa| 欧美va亚洲va| 欧美丝袜丝交足nylons图片| 成人午夜在线视频| 奇米综合一区二区三区精品视频 | 欧美日韩久久久久久| 国产精品66部| 日日夜夜免费精品| 亚洲天堂中文字幕| 精品国产乱码久久久久久蜜臀| 欧美性猛交xxxxxx富婆| 成人网页在线观看| 国产精品资源网| 欧美aaaaaa午夜精品| 亚洲激情校园春色| 欧美经典三级视频一区二区三区| 538prom精品视频线放| 91老司机福利 在线| 懂色av一区二区在线播放| 美女视频第一区二区三区免费观看网站 | 在线免费精品视频| 99久久婷婷国产综合精品| 国产成人夜色高潮福利影视| 美女视频网站久久| 天涯成人国产亚洲精品一区av| 夜夜嗨av一区二区三区中文字幕 | 亚洲国产成人91porn| 亚洲欧美综合网| 中文字幕乱码久久午夜不卡 | 洋洋av久久久久久久一区| 国产精品传媒在线| 国产精品热久久久久夜色精品三区| 久久婷婷国产综合精品青草| 日韩欧美成人午夜| 日韩女优视频免费观看| 欧美一级二级在线观看| 日韩视频在线一区二区| 日韩欧美卡一卡二| 精品国产91亚洲一区二区三区婷婷| 欧美一区午夜视频在线观看| 日韩手机在线导航| 久久亚洲二区三区| 国产女主播视频一区二区| 国产精品精品国产色婷婷| 亚洲视频每日更新| 亚洲亚洲人成综合网络| 午夜久久电影网| 精品一区二区三区的国产在线播放| 国产自产v一区二区三区c| 国产成人午夜片在线观看高清观看| 福利视频网站一区二区三区| av一二三不卡影片| 91久久精品午夜一区二区| 欧美午夜精品久久久| 337p亚洲精品色噜噜噜| 久久综合九色综合97婷婷| 亚洲国产激情av| 亚洲一级电影视频| 久久66热re国产| 91在线丨porny丨国产| 欧美日韩一卡二卡三卡| 精品国产区一区| 亚洲卡通欧美制服中文| 另类的小说在线视频另类成人小视频在线| 久久精品国产精品青草| 成人午夜免费视频| 欧美高清视频不卡网| 久久在线免费观看| 亚洲综合av网| 国产露脸91国语对白| 欧洲人成人精品| 久久久久久影视| 亚洲福利一二三区| 国产在线视视频有精品| 91国偷自产一区二区开放时间 | 欧美午夜精品免费| 久久丝袜美腿综合| 亚洲一区二区三区视频在线| 久久99久久99| 欧美日韩中文一区| 国产女主播视频一区二区| 三级影片在线观看欧美日韩一区二区| 青青草国产成人av片免费| 91久久久免费一区二区| 国产拍揄自揄精品视频麻豆| 天天综合色天天综合| 一本一本大道香蕉久在线精品 |