`
houkai2009
  • 浏览: 218445 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
  • 浪迹随风: 文章是挺好的,不过太杂了。。。信息量也很大。。。很难消化。。。 ...
    EJB 介绍
  • javaersu: yds3300376yd 写道学习了,只是楼主写的有点杂,现在 ...
    EJB 介绍
  • yds3300376yd: 学习了,只是楼主写的有点杂,现在还看不太懂,刚学习EJB,我觉 ...
    EJB 介绍
  • javaersu: 不错,这里也有一篇类似的EJB文章教程http://www.y ...
    EJB 介绍
  • dingding5060: brother , 你贴代码想说明什么???
    enum

sed:处理报文输出

阅读更多
处理报文输出
当从数据库中执行语句输出时,一旦有了输出结果,脚本即可做进一步处理。通常先做一些整理,下面是一个s q l查询结果。


[Copy to clipboard] [ - ]
CODE:
[sam@chenwy sam]$ cat data.txt
Database Size(MB) DataCreated
-----------------------------
GOSOUTH  2244     12/11/97
TRISUD   5632     8/9/99
(2 rows affected)

为了使用上述输出信息做进一步自动处理,需要知道所存数据库名称,为此需执行以下
操作:
1) 使用s / - * / / g删除横线- - - - - -。
2) 使用/ ^ $ / d删除空行。
3) 使用$ d删除最后一行
4) 使用1 d删除第一行。
5) 使用awk {print $1}打印第一列。
命令如下,这里使用了c a t,并管道传送结果到s e d命令。


[Copy to clipboard] [ - ]
CODE:
[sam@chenwy sam]$ cat data.txt |sed 's/--*/ /g' | sed '/^$/d' | sed '$d' | sed '1d' | awk '{print $1}'
GOSOUTH
TRISUD

附加文本
当帐户完成设置一个文件时,帐号管理者可能要在文件中每个帐号后面加一段文字,下面是此类文件的一部分:


[Copy to clipboard] [ - ]
CODE:
[sam@chenwy sam]$ cat ok.txt
AC456
AC492169
AC9967
AC88345

任务是在每一行末尾加一个字符串‘ p a s s e d’。
使用$命令修改各域会使工作相对容易些。首先需要匹配至少两个或更多的数字重复出现,这样将所有的帐号加进匹配模式。


[Copy to clipboard] [ - ]
CODE:
[sam@chenwy sam]$ sed 's/[0-9][0-9]*/& Passed/g' ok.txt
AC456 Passed
AC492169 Passed
AC9967 Passed
AC88345 Passed

从shell向sed传值
要从命令行中向s e d传值,值得注意的是用双引号,否则功能不执行。


[Copy to clipboard] [ - ]
CODE:
[sam@chenwy sam]$ NAME="It's a go situation"
[sam@chenwy sam]$ REPLACE="GO"
[sam@chenwy sam]$ echo $NAME | sed "s/go/$REPLACE/g"
It's a GO situation

从sed输出中设置shell变量
从s e d输出中设置s h e l l变量是一个简单的替换过程。运用上面的例子,创建s h e l l变量N E W- N A M E,保存上述s e d例子的输出结果。


[Copy to clipboard] [ - ]
CODE:
[sam@chenwy sam]$ NAME="It's a go situation"
[sam@chenwy sam]$ REPLACE="GO"
[sam@chenwy sam]$ NEW_NAME=`echo $NAME | sed "s/go/$REPLACE/g"`
[sam@chenwy sam]$ echo $NEW_NAME
It's a GO situation

这里的`是键盘左上角那个`


下面是一些一行命令集。([ ]表示空格, [ ]表示t a b键)


QUOTE:
‘s / \ . $ / / g’ 删除以句点结尾行
‘-e /abcd/d’ 删除包含a b c d的行
‘s / [ ] [ ] [ ] * / [ ] / g’ 删除一个以上空格,用一个空格代替
‘s / ^ [ ] [ ] * / / g’ 删除行首空格
‘s / \ . [ ] [ ] * / [ ] / g’ 删除句点后跟两个或更多空格,代之以一个空格
‘/ ^ $ / d’ 删除空行
‘s / ^ . / / g’ 删除第一个字符
‘s /CO L \ ( . . . \ ) / / g’ 删除紧跟C O L的后三个字母
‘s / ^ \ / / / g’ 从路径中删除第一个\
‘s / [ ] / [ ] / / g’ 删除所有空格并用t a b键替代
‘S / ^ [ ] / / g’ 删除行首所有t a b键
‘s / [ ] * / / g’ 删除所有t a b键

1. 删除路径名第一个\符号
将当前工作目录返回给s e d,删除第一个\:


[Copy to clipboard] [ - ]
CODE:
[sam@chenwy sam]$ echo $PWD |sed 's/^\///g'
usr/sam

2. 追加/插入文本
将"Mr Wi l l i s "字串返回给s e d并在M r后而追加" B r u c e "。


[Copy to clipboard] [ - ]
CODE:
[sam@chenwy sam]$ echo "Mr Willis" |sed 's/Mr /& Bruce/g'
Mr  BruceWillis

3. 删除首字符
s e d删除字符串“a c c o u n t s . d o c”首字符。


[Copy to clipboard] [ - ]
CODE:
[sam@chenwy sam]$ echo "accounts.doc" |sed 's/^.//g'
ccounts.doc

4. 删除文件扩展名
s e d删除“a c c o u n t s . d o c”文件扩展名。


[Copy to clipboard] [ - ]
CODE:
[sam@chenwy sam]$ echo "accounts.doc"|sed 's/.doc//g'
accounts

5. 增加文件扩展名
s e d附加字符串“. d o c”到字符串“a c c o u n t s”。


[Copy to clipboard] [ - ]
CODE:
[sam@chenwy sam]$ echo "accounts"|sed 's/$/.doc/g'
accounts.doc

6. 替换字符系列
如果变量x含有下列字符串:


[Copy to clipboard] [ - ]
CODE:
[sam@chenwy sam]$ x="Department+playroll&Building G"
[sam@chenwy sam]$ echo $x
Department+playroll&Building G

如果要加入of,located,并去掉+,&实现下列转换:


[Copy to clipboard] [ - ]
CODE:
[sam@chenwy sam]$ echo $x |sed 's/\+/ of /g' |sed 's/\&/ Located at /g'
Department of playroll Located at Building G

把+用 of 替换,&用located at 替换
分享到:
评论

相关推荐

    Linux指令一周通 (技术图书大系).azw3

    2.21 sed指令:利用script命令处理文本文件 2.22 sort指令:将文本文件内容加以排序 2.23 spell指令:拼字检查程序 2.24 tr指令:转换文件中的字符 2.25 uniq指令:检查文件中重复出现的行 2.26 vi指令:文字编辑器 ...

    TCP-IP详解卷三:TCP事务协议,HTTP,NNTP和UNIX域协议

    第9章 /CP实现:CP输出 9.1 概述 9.2 cp_upu函数 9.2.1 新的自动变量 9.2.2 增加隐藏的状态标志 9.2.3 在SY_SE状态不要重传SY 9.2.4 发送器的糊涂窗口避免机制 9.2.5 有RS或SY标志时强制发送报文段 9.2.6 发送MSS...

    TCPIP协议详解卷三:TCP事务协议,HTTP,NNTP和UNIX域协议

    第9章 /CP实现:CP输出 9.1 概述 9.2 cp_upu函数 9.2.1 新的自动变量 9.2.2 增加隐藏的状态标志 9.2.3 在SY_SE状态不要重传SY 9.2.4 发送器的糊涂窗口避免机制 9.2.5 有RS或SY标志时强制发送报文段 9.2.6 发送MSS...

    LINUX与UNIX_Shell编程指南(上)

    10.10.2 处理报文输出 101 10.10.3 去除行首数字 101 10.10.4 附加文本 102 10.10.5 从shell向sed传值 102 10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 ...

    Linux与unix shell编程指南

    10.10.2 处理报文输出 101 10.10.3 去除行首数字 101 10.10.4 附加文本 102 10.10.5 从shell向sed传值 102 10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 ...

    Linux与unix shell编程指南(1-16)

    10.10.2 处理报文输出 101 10.10.3 去除行首数字 101 10.10.4 附加文本 102 10.10.5 从shell向sed传值 102 10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 ...

    Linux与Unix Shell编程指南(PDF格式,共30章)

    10.10.2 处理报文输出 101 10.10.3 去除行首数字 101 10.10.4 附加文本 102 10.10.5 从shell向sed传值 102 10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 ...

    shell编程和unix命令

    10.10.2 处理报文输出 101 10.10.3 去除行首数字 101 10.10.4 附加文本 102 10.10.5 从shell向sed传值 102 10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 ...

    Linux shell编程指南

    10.10.2 处理报文输出 101 10.10.3 去除行首数字 101 10.10.4 附加文本 102 10.10.5 从shell向sed传值 102 10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 ...

    LINUX与UNIX SHELL编程指南 高清PDF

    10.10.2 处理报文输出 101 10.10.3 去除行首数字 101 10.10.4 附加文本 102 10.10.5 从shell向sed传值 102 10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 ...

    LINUX与UNIX SHELL编程指南

    10.10.2 处理报文输出 101 10.10.3 去除行首数字 101 10.10.4 附加文本 102 10.10.5 从shell向sed传值 102 10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 ...

    linux与unix shell编程指南

    10.10.2 处理报文输出 101 10.10.3 去除行首数字 101 10.10.4 附加文本 102 10.10.5 从shell向sed传值 102 10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 ...

    linux与unix shell编程指南part2

    10.10.2 处理报文输出 101 10.10.3 去除行首数字 101 10.10.4 附加文本 102 10.10.5 从shell向sed传值 102 10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 ...

    linux与unix shell编程指南.rar

    10.10.2 处理报文输出 101 10.10.3 去除行首数字 101 10.10.4 附加文本 102 10.10.5 从shell向sed传值 102 10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 ...

    linux shell 编程教程

    10.10.2 处理报文输出 101 10.10.3 去除行首数字 101 10.10.4 附加文本 102 10.10.5 从shell向sed传值 102 10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 ...

    shell 编程指南pdf

    10.10.2 处理报文输出 101 10.10.3 去除行首数字 101 10.10.4 附加文本 102 10.10.5 从shell向sed传值 102 10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 ...

    LINUX与UNIX SHELL编程指南(很全)

    10.10.2 处理报文输出 101 10.10.3 去除行首数字 101 10.10.4 附加文本 102 10.10.5 从shell向sed传值 102 10.10.6 从sed输出中设置shell变量 102 10.11 快速一行命令 102 10.12 小结 103 第11章 合并与分割 104 ...

Global site tag (gtag.js) - Google Analytics