Sed(2)

Sed写法

1)Sed由于处理方式是多个命令同时对一行进行处理,所以在很多时候需要用while将整个要处理的文件包起来,一行一行的来进行处理,采用的结构如下

while($line_current <$line_all)

@ line_current  = $line_current  +  1(注意符号之间是有空格的,这个特别需要注意,否则就会出现不必要的错误,@后边也是存在空格的)

end

提取line_all的方法:set line_all = `wc –l < $filename`这种方式

2)另外,很多时候会用if else等来将程序条件等包起来,而且定义相应的条件时可以设定相应的flag,只有在满足相应的条件的flag满足要求时,才进行相应的变化,这可以很大程度上减少代码数量;if的用法如下:

if(condition)then

Coding context

endif

如上所述,相应的要注意if后边要跟着相应的then,最后要有endif。

3)另外还有一些方法可以用来匹配相应的行中的内容的方式:

set a  `sed  –n “$line_current”’s/condition1/context/p‘ $filename`这种方式可以匹配相应的context并将内容给变量a

4)另外还有一些相应的多条指令运行和多种条件进行匹配的方式;一种是sed –n –e ’s/aaa/bbb/’ –e ‘s/vvv/ddd/’ $filename这种方式同时对内容进行多次匹配替换,或者是采用相应的\|这种逻辑或的方式来进行。

5)当然最常用的方法是采用.\{number\}的方式来进行相应的匹配,因为这个可以指定字符数目,而相应的.可以替代一个字符。

6)可以采用相应的bc来进行计算并制定相应的计算出来的数目的精确度,如下所示

set a = `echo “( $var1 - $var2 )” |bc  -l`的方式给变量a相应的值,并制定精确度。

相应的设定相应的变量的时候注意相应的“” ’’ ``等的不同的用法;

set avr = `echo $avr | awk ‘{printf “%.3f”,$0}’`这种方式来进行;

7)注意相应的可以在程序前部分加上setnoglob和结尾加上unset noglob;

8)注意在循环中一定要有变量发生变化,否则就会产生死循环,导致程序失败,

如下有一个判定的方式

set status = 1

sed –n ’‘ “line_current” ’s/pattern1/pattern2/p’$filename | grep ‘pattern2’

set flag = $status的方式,来判定程序是否进行了匹配,当然也有其它方式来判定;

9)注意一些细节上的东西,比如说.和_,1和l,0和o

Sed的debug方法

1)相应的在相应的变量下面将指定的变量echo出来,或者echo一行数字来判断代码执行到哪一行;

2)sh –x来执行代码,判定相应的问题;

Sed出现的错误的类型:

1)Expression syntax相应的表达式有错误

2)还有的就是sed中)等没有匹配,或者相应的条件出现错误。

3)还有就是parseerroe的问题,解析错误,程序中存在误解,比如说sed中的分隔符如果采用/的话,如果要替换的内容中也存在这个/那么就可能会让程序无法确定哪个部分该被替换,因而出现错误。

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

推荐阅读更多精彩内容

  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 4,685评论 0 11
  • 1.创建文件夹 !/bin/sh mkdir -m 777 "%%1" 2.创建文件 !/bin/sh touch...
    BigJeffWang阅读 10,023评论 3 53
  • 基础命令 主要的命令和快捷键 Linux系统命令由三部分组成:cmd + [options]+[operation...
    485b1aca799e阅读 1,086评论 0 0
  • sed最主要的就是command部分,把这部分玩转了,你就已经很厉害了,而玩转这部分的前提是玩转正则表达式。尽管如...
    shuff1e阅读 359评论 0 0
  • ...
    彭小语阅读 339评论 0 7