免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4430 | 回复: 6
打印 上一主题 下一主题

如何找到包含特殊字符的行,然后删除此行? [复制链接]

论坛徽章:
0
1 [报告]
发表于 2003-05-30 01:06 |显示全部楼层

如何找到包含特殊字符的行,然后删除此行?

原帖由 "unixplus" 发表:
比如我要找到包含/*的注释行,然后删除,怎么做?
我用shell不多,不太会,请各位多帮忙,谢了
   

  1. #!/bin/sh

  2. test $# -lt 2 && echo "Usage: $0 [-d] FILE" && exit 1

  3. if [ x"$1" = "x-d" ]; then
  4.     PARA=''
  5.     PRNT='d'
  6.     shift
  7. else
  8.     PARA='-n'
  9.     PRNT='p'
  10. fi

  11. sed $PARA "{
  12. /\/\/.*/p
  13. /\/\*/!b
  14. :a
  15. /\*\//!{
  16. N
  17. ba
  18. }
  19. $PRNT
  20. }" $1
复制代码


使用,假定该脚本命名为 a.sh

1. 只显示注释行:  

$ ./a.sh  file.c
/******************************************************************
* program
* hehe
******************************************************************/
    /* pw = getpwnam(argv[1]);
     enc = crypt( argv[2], pw->pw_passwd );
    */

2. 屏蔽所有注释行

$ ./a.sh -d file.c
#include <pwd.h>
#include <crypt.h>
#include <sys/types.h>
#include <string.h>
#include <stdio.h>

int main ( int argc, char *argv[] ) {
    char *enc;
    struct passwd *pw;
    ...
    }
    exit(0);
}

如果要输出到文件中只要在命令中用 > newfile 就可以了

论坛徽章:
0
2 [报告]
发表于 2003-05-30 01:16 |显示全部楼层

如何找到包含特殊字符的行,然后删除此行?

...

注意:

直接从帖子里拷贝的代码会造成行尾自动加上空格,这样在 sed 会出错,请自行删除这些空格或者在这儿直接下载

http://www.kingisme.com/hongxiu/a.sh

论坛徽章:
0
3 [报告]
发表于 2003-05-30 01:58 |显示全部楼层

如何找到包含特殊字符的行,然后删除此行?

...



$ lynx -dump a.html

就可以了,如果非用脚本也是可以的,用 sed 把 HTML tag 也就是说 <...> 这样的字串去掉就好了,

$ sed 's/\<.*\>//g' a.html

当然版面效果不会有 lynx 那么好。

论坛徽章:
0
4 [报告]
发表于 2003-05-30 02:21 |显示全部楼层

如何找到包含特殊字符的行,然后删除此行?

原帖由 "991214" 发表:
出不来呀!结果:
$cat xmweb|sed 's/\<.*\>//g'
<!>$
注:我的系统是linux.没有装lynx,我想不会是这个原因.
   

哦,sorry, 是疏忽啦,

$ sed 's/\<[^>]*\>//g;s/\&nbsp\;/ /g'  a.htm

这只是基本的提取,如果要做得好一点,还有很多东东要考虑的。

论坛徽章:
0
5 [报告]
发表于 2003-05-30 02:26 |显示全部楼层

如何找到包含特殊字符的行,然后删除此行?

....

真晕,这个论坛吃掉了一些东东

论坛徽章:
0
6 [报告]
发表于 2003-05-30 02:27 |显示全部楼层

如何找到包含特殊字符的行,然后删除此行?

....

真晕,这个论坛吃掉了一些东东 , & nbsp; 贴不上

$ sed 's/\<[^>]*\>//g;s/\&nb sp\;/ /g'  a.htm

把笑脸去掉

论坛徽章:
0
7 [报告]
发表于 2003-05-30 03:26 |显示全部楼层

如何找到包含特殊字符的行,然后删除此行?

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP