一、示例文件及需求:
catfile
111111111111111111
222222222222222222
=333333333333333333
444444444444444444
如果某行以=开始,则合并到上一行并替代=为空格
二、sed脚本执行结果:
sed-e:a-e'$!N;s/\n=//;ta'-e'P;D'file
111111111111111111
222222222222222222333333333333333333
444444444444444444
三、命令说明:
:a定义一个标签位置
$!N如果不是最后一行,就读入新行附加于patternspace之后,以“\n”分隔
s/\n=//如果发现了\n=的,替换为空格
ta如果找到了替换,从标签a处再执行,否则向下走
P打印patternspace中的第一个\n之前的内容
D删除patternspace中的第一个\n之前的内容,不打印模式空间,如果有模式空间还有数据,不会读取新行,继续开始下一循环
四、执行流程分析:
第一行执行,没有找到 \n= 打印第一行,读入第二行,脚本头部执行
第二行执行,找到 \n= ,替换为空格,从标签a处再执行
第三行执行,没有找到 \n= 打印第二三行的合并和第四行,读入新行,没有了,结束
COMM:代表命令,PATT:代表patternspace的内容,其他为sed输出的内容
PATT:111111111111111111$
COMM::a
COMM:$!N
PATT:111111111111111111\n222222222222222222$
COMM:s/\n=//
PATT:111111111111111111\n222222222222222222$
COMM:ta
COMM:P
111111111111111111
PATT:111111111111111111\n222222222222222222$
COMM:D
PATT:222222222222222222$
COMM::a
COMM:$!N
PATT:222222222222222222\n=333333333333333333$
COMM:s/\n=//
PATT:222222222222222222333333333333333333$
COMM:ta
COMM:$!N
PATT:222222222222222222333333333333333333\n444444444444444444$
COMM:s/\n=//
PATT:222222222222222222333333333333333333\n444444444444444444$
COMM:ta
COMM:P
222222222222222222333333333333333333
PATT:222222222222222222333333333333333333\n444444444444444444$
COMM:D
PATT:444444444444444444$
COMM::a
COMM:$!N
PATT:444444444444444444$
COMM:s/\n=//
PATT:444444444444444444$
COMM:ta
COMM:P
444444444444444444
PATT:444444444444444444$
COMM:D
五、参考:
http://bbs.chinaunix.net/thread-277289-1-1.html
相关推荐
包括sed-4.2.1-setup.exe、sed-4.2.1-dep.zip、sed-4.2.1-bin.zip
sed命令的详细介绍,对于需要使用脚本的童鞋会比较有帮助
-d, --debug debug the sed script --hide hide some debug info (options: PATT,HOLD,COMM) --color shows debug output in colors (default: ON) --nocolor no colors on debug output --dump-debug dumps to...
本文用一个个简短的例子展示sed每一个命令的用法,简单易懂,希望对你有些帮助。 网上大多资料都是英文版的,好多人看着不打舒服,因此写此题集,助你快速提升对sed的驾驭能力。
Shell编程-字符截取命令-sed命令
sed-4.2.1-setup.exe window下可以使用
Sed命令是linux下的一个非常有用的命令,特别是在shell脚本中经常会使用到他。 熟悉他你会觉得非常有趣哦! 1.sed -n '2'p filename 打印文件的第二行。 2.sed -n '1,3'p filename 打印文件的1到3行 3. sed -n '/...
linux shell命令sed的使用方法
Linux sed命令 相关请见资料内 sed awk都有 Linux sed命令 相关请见资料内 sed awk都有
linux 系统 sed 命令使用方法linux 系统 sed 命令使用方法linux 系统 linux 系统 sed 命令使用方法linux 系统 sed 命令使用方法sed 命令使用方法
-f script-file, --file=script-file 从文件读取脚本,每行一个编辑命令 add the contents of script-file to the commands to be executed -i[SUFFIX], --in-place[=SUFFIX] 直接在原文件编辑 edit files in ...
Linux sed命令 Linux 命令大全 Linux 命令大全 ...通常 p 会与参数 sed -n 一起运行~ s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
通用线程sed 实例大家可以看看啦,不错的!
sed 用法sed 用法sed 用法sed 用法sed 用法
linux sed 命令详解 资源收集 linux sed 命令详解 资源收集
linux下面的文本编辑工具sed,非常强大,现在windows版本的sed已出
描述: sed,主要用于匹配文件,以前下载过的,现在主要是为了分享一下吧,另外作为自己的资源保存一下
shell编程中经常用到sed命令,本文详细介绍了shell常用命令sed详细用法
Vim-101-hacks、Sed-and-Awk-101-Hacks、Linux-101-hacks 英文版(高清)PDF
AWK命令详解 sed命令详解 AWK命令详解 sed命令详 AWK命令详解 sed命令详解解