AIX下使用sed对文件进行操作

来源:互联网 发布:淘宝的一分兑换在哪里 编辑:程序博客网 时间:2024/06/06 03:58
一.附加文本使用a\在指定行后面附加1行或多行;若不指定放置的位置,则默认放到每一行的后面。附加文本时,不允许指定范围,只允许一个地址模式。附加格式:[address] a\text\text\...text注意:1.a\通知sed对a\后面的内容进行附加操作。2.每行后面都有"\",当sed执行到\时,将创建一个新行,并将内容添加进去。3.最后一行不能有"\"。例子:如果将附加的第一行最后的"\"去掉,那么运行脚本将会报错。pg append.sed#!bin/sed -f# append text/company/ a\Then suddenly it happened._yeeXun.执行之后:sed -f append.sed quote.txtsed: Unrecognized command: _yeeXun.修改之后pg append.sed#!bin/sed -f# append text/company/ a\Then suddenly it happened.\_yeeXun.执行脚本:sed -f append.sed quote.txtThe honeysuckle band played all night long for noly $90.It was an evening of splendid music and company.Then suddenly it happened._yeeXun.Too bad the disco floor fell through at 23:10.The local nurse Miss P.Neave was in attendance.因为sed不与原文件打交道,编辑的只是其一个拷贝,所以我们附加的数据不会写到文件中;当执行上面的命令之后,我们查看下quote.txt文件:pg quote.txtThe honeysuckle band played all night long for noly $90.It was an evening of splendid music and company.Too bad the disco floor fell through at 23:10.The local nurse Miss P.Neave was in attendance.二.修改文本使用c\修改指定行,格式:[address[,address]] c\text\text\...textaddress:行位置,可以使用正则表达式定位,也可以直接指定行号。text:为替换的文本,注意最后一行没有"\"。例子替换第三行数据:pg change.sed# change date/bad/ c\[Two good.]\next goods.运行脚本:sed -f change.sed quote.txtThe honeysuckle band played all night long for noly $90.It was an evening of splendid music and company.[Two good.]next goods.The local nurse Miss P.Neave was in attendance.三.添加文本在指定行前面添加数据。[address] i\text\text\...textaddress:行位置,可以使用正则表达式定位,也可以直接指定行号。text:为替换的文本,注意最后一行没有"\"。例如:pg insert.sed# insert data/.*ing/ i\[the insert date].运行脚本:sed -f insert.sed quote.txtThe honeysuckle band played all night long for noly $90.[the insert date].It was an evening of splendid music and company.Too bad the disco floor fell through at 23:10.The local nurse Miss P.Neave was in attendance.四.删除文本删除文件中的内容,删除1行或者连续的多行,或者匹配某个模式的所有行格式:[address[,address]] d文件信息:pg quote.txtThe honeysuckle band played all night long for noly $90.It was an evening of splendid music and company.Too bad the disco floor fell through at 23:10.The local nurse Miss P.Neave was in attendance.删除第一行:sed '1d' quote.txtIt was an evening of splendid music and company.Too bad the disco floor fell through at 23:10.The local nurse Miss P.Neave was in attendance.删除第一到第三行:sed '1,3d' quote.txtThe local nurse Miss P.Neave was in attendance.删除最后一行:sed '$d' quote.txtThe honeysuckle band played all night long for noly $90.It was an evening of splendid music and company.Too bad the disco floor fell through at 23:10.使用正则表达式删除符合条件的所有行。删除包含以字母a开头,以字母d结尾,总长为3的行,符合的有第一行(band),第二行(and)。sed '/a.d/d' quote.txtToo bad the disco floor fell through at 23:10.The local nurse Miss P.Neave was in attendance.五.替换文本,格式:[address[,address]] s/pattern-to-find/replacement-pattern/[g p w n]address:可选项g:默认情况下,只替换首次出现模式,使用g替换全部所有出现的模式;p:默认sed将所有被替换行写入标准输出,加p将使-n选项无效;-n不打印输出结果。w:文件名,使用此选项将输出定向到一个文件。将小写的floor替换为大写的FLOOR:sed 's/floor/FLOOR/' quote.txtThe honeysuckle band played all night long for noly $90.It was an evening of splendid music and company.Too bad the disco FLOOR fell through at 23:10.The local nurse Miss P.Neave was in attendance.将包含"$"符号的行$符号删除掉:包含$符号的行:sed -n '/$.*/p' quote.txtThe honeysuckle band played all night long for noly $90.删除$(使用空替代)符号后的行:sed -n 's/\$//p' quote.txtThe honeysuckle band played all night long for noly 90.将首次出现的"The"单词替换为"THE",并输出到另一个文件中若sed.out存在则向里面写数据,所不存在则创建此文件并写数据:sed 's/The/THE/w sed.out' quote.txtTHE honeysuckle band played all night long for noly $90.It was an evening of splendid music and company.Too bad the disco floor fell through at 23:10.THE local nurse Miss P.Neave was in attendance.查看文件sed.out:pg sed.outTHE honeysuckle band played all night long for noly $90.THE local nurse Miss P.Neave was in attendance.

使用替换修改字符串&命令实现字符串的添加:sed -n 's/nurse/"Hello" &/p' quote.txtThe local "Hello" nurse Miss P.Neave was in attendance.将sed结果写入文件命令格式:[address[,address]]w filename把带"of"的行写入文件sed.out中:sed -n '/of/w sed.out' quote.txtpg sed.outIt was an evening of splendid music and company.从文件中读取数据将要添加的数据:pg sedex.txt中文执行命令,添加数据:sed '/company./r sedex.txt' quote.txtThe honeysuckle band played all night long for noly $90.It was an evening of splendid music and company.中文Too bad the disco floor fell through at 23:10.The local nurse Miss P.Neave was in attendance.--匹配后退出,格式:add包含The单词的行:sed -n '/The/p' quote.txtThe honeysuckle band played all night long for noly $90.The local nurse Miss P.Neave was in attendance.打印首次出现The的行:sed '/The/q' quote.txtThe honeysuckle band played all night long for noly $90.显示文件中的控制字符cat -v func.txtat the begining^[[C^[[B^[[B^[[AThe file name is func,^Hand it's suffix is .txt^[[D^[[D查看这些控制字符对应的ASCII码:sed -n '1,$l' func.txtat the begining\033[C\033[B\033[B\033[A$The file name is func,$\b$and it's suffix is .txt\033[D\033[D$\b:表示空格,$:表示行末尾\033:表示退格键

--the end--

原创粉丝点击