SHELL脚本之SED流式编辑器


1、什么是SED?

答:SED全称是:Stream EDitor 流式编辑器,它的特点就是可以逐行处理文件,也可以非交互式修改文本文件;

例如:

寻找luo.txt这个文件中的带有root字符的行;

sed  -n   '/root/p'   /luo.txt

译为:运用sed流式编辑器查找luo.txt这个文本文件中带有root字符的行,并输出;

它会把整个文件都找一遍,然后帮你输出到屏幕上;


2、sed常用的使用方式由哪些?

答:sed常用的使用方式由两种:

a、sed       选项    ‘定址符和指令’    目标文件;(定址符指的是在文本文件中的第几行或第几个字符,需要加单引号)

b、前置置命令  |  sed  选项   "定址符和指令" 


3、sed常用的选项由哪些?

答:sed常用的选项有:-n     -r    -i    p

-n    指的是屏蔽默认输出,如果不加-n,sed自己本身会输出一边内容,加上你的指令,如此就是输出了两遍,所以要加-n;

-i    指的是将修改后的结果保存到文件;

比如:

sed   -n  -i  '/root/p'    /luo.txt

译为:运用sed流式编辑器修改并保存luo.txt这个文本文件中带root字符的行;

最后的结果就是除带root字符的行外,其余内容全部删除;

-r    指的是使用扩展正则;

例如:sed  -rn  '/要查找的字符{字符的个数,}/p'  

p    指的是输出查看相应内容;

d    指的是删除;

=    指的是运用sed显示文本文件答行号

s    指的是替换,g指的是所有,格式需要用///或者###;

格式如下:

sed    's/ 旧内容 / 新内容 /'  目标文件

为防止冲突:@@@、!!!、$$$、%%%、&&&、***、(((、)))都可以用; 


4、实用案例;

案例1:


请运用sed流式编辑器和正则表达式来实现luo.txt这个文件的第一个字符与最后一个字符的替换;

解:操作如下:

sed   -r    's/^(.)(.*)(.)$/\3\2\1/'   luo.txt    

译为:运用sed流式编辑器将luo.txt这个文本文件里的内容的第一个字符与最后一个字符进行替换;

其中:

s —— 在sed中表示替换的意思,是sed工具中常用的选项之一;没有加位置符表示所有,如是1s,表示第一行;

^(.) —— 这是正则表达式中的符号,^译为开头的第一个字符;()—— 在拓展正则式中译为保留的意思;

. —— 在正则表达式中译为任意字符的意思;

^(.) —— 合在一起译为:保留文本文件中的第一个字符,不管这个字符是什么,都保留,哪怕是空格;

(.*) —— *号表示的是前一个字符在文本中出现的任意次数;(.*)结合起来译为:保留任意字符出现的任意次数,就是不管它是什么字符,不管它出现了几次,都保留下来;

(.)$ —— $在正则表达式中译为匹配行尾;(.)$结合为起来译为保留尾部的任意字符;

\3\2\1 —— 在sed中译为由原来的1、2、3排序,重新编排为3、2、1;

-r —— 指的是在sed流式编辑器中的一个选项,主要用于搭配扩展正则式使用;


案例2:


请运用sed和正则表达式将luo.txt文本文件中所有的数字全部删除;

解:命令如下:

sed     's / [ 0-9 ] / / '      luo.txt

译为:[ 0-9 ]  这是一个集合,在正则表达式中译为0-9的数字;

            / / 在sed流式编辑器中译为空,斜杆中间没有写任何东西;

            s是sed流式编辑器中的一个常用选项之一,主要用于替换字符或者删除字符;


案例3:


请运用sed流式编辑器工具和正则表达式,将luo.txt文本文件中行首空格和数字全部删除,且把所有大写字母用[ ]括起来;

解:命令格式如下:

sed   -r  -i  's/ ^( )+ /  /g ;  s/ [ 0-9 ] /  /  ;  s/( [ A-Z ] )/ [ \1 ] /g '       luo.tx

译为:

[ 0-9 ] 和 [ A-Z ] 在正则表达式中译为0-9的数字集合和A-Z的大写字母的集合;

/g  在sed流式编辑器中指的式所有的意思;

-i 是sed流式编辑器中的选项之一,指的是保存修改后的文件;

() 在扩展正则表达式中指的式保留的意思;


以上........


祝;开心!

罗贵

2019-03-11于深圳

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容