s e d是一个非交互性文本流编辑器。它编辑文件或标准输入导出的文本拷贝。标准输入可能是来自键盘、文件重定向、字符串或变量,或者是一个管道的文本。s e d可以做些什么呢? 别忘了,Vi也是一个文本编辑器。s e d可以随意编辑小或大的文件,有许多s e d命令用来编辑、删除,并允许做这项工作时不在现场。s e d一次性处理所有改变,因而变得很有效,对用户来 讲,最重要的是节省了时间。
1.sed基本用法
s e d选项如下: n 不打印;s e d不写编辑行到标准输出,缺省为打印所有行(编辑和未编辑)。p命令可以用来打印编辑行。 c 下一命令是编辑命令。使用多项编辑时加入此选项。如果只用到一条s e d命令,此选项无用,但指定它也没有关系。 f 如果正在调用s e d脚本文件,使用此选项。此选项通知s e d一个脚本文件支持所有的s e d命令,例如:sed -f myscript.sed input_file,这里m y s c r i p t . s e d即为支持s e d命令的文件。
2.sed中使用shell变量
inputfile1="aaaaa" sed -e '2s/.*/'"${inputfile1}"'/' load.ctl > load.tmp表示把load.ctl中第二行替换为变量的内容。
3.变量中有特俗字符,比如含有“/”
inputfile1="/iptv_jf/IPTV_POINT_DET"${gzipdate}"01.txt" sed -e '2s%.*%'"${inputfile1}"'%' load.ctl > load.tmp功能同上。即把原来用“/”单斜线做为sed命令的分割符换成了用“%”做为分隔符。