Chinaunix

标题: 求助删除文件中每行第一个"/" [打印本页]

作者: hblee    时间: 2006-12-19 17:29
标题: 求助删除文件中每行第一个"/"
Tue Dec 19 11:01:55 2006     71 203.88.219.0 TCP_MISS/200 794 GET http://blog.sina.com.cn/myblog/checkwd_image.
php - DIRECT/219.142.78.208 image/png

上面是一行文本,我想替换第一个"/"为空,也就是删除它,其实也想把前面的TCP_MISS也删掉,请各们高手帮个忙
作者: flw    时间: 2006-12-19 17:40
waker 的 fans 为什么不去 shell 版?
帮你转一下吧。
作者: hblee    时间: 2006-12-19 17:50
perl可以实现吧!!
作者: flw    时间: 2006-12-19 17:58
原帖由 hblee 于 2006-12-19 17:50 发表
perl可以实现吧!!

但是 sed 更容易
作者: NICKY.BOY    时间: 2006-12-19 17:58
sed "s/TCP_MISS\///" yourfile
作者: hblee    时间: 2006-12-19 18:09
我指的是一个大文本文件里不只有TCP_MISS还有很多种状态,这个是不确定的.要删除文件中第行的第一个"/"
作者: mcknight    时间: 2006-12-19 18:36
sed 's/\///' urfile
作者: hblee    时间: 2006-12-19 18:50
要删除文件中每行的第一个"/
作者: Edengundam    时间: 2006-12-19 19:15
也许他想要这个效果吧

  1. sed 's:\([[:space:]]*\)[^[:space:]]*/:\1:'
复制代码

作者: hblee    时间: 2006-12-20 11:07
谢谢,用你的方法成功解决了!


原帖由 Edengundam 于 2006-12-19 19:15 发表
也许他想要这个效果吧

  1. sed 's:\([[:space:]]*\)[^[:space:]]*/:\1:'
复制代码


作者: himate    时间: 2006-12-21 14:58
标题: 试试这个行不 呵呵
假定你要处理的文件名字为pa.txt

#!/bin/perl
open (PA,"<pa.txt");
while( <PA>){
  ~s/([^i\/]*)\/(.*)/\1\2/g;
print ;

能去掉每行第一个/
作者: 網中人    时间: 2006-12-21 15:13
原帖由 mcknight 于 2006-12-19 18:36 发表
sed 's/\///' urfile


這個方法應該可以啊,LZ 試了沒?
作者: yjh777    时间: 2006-12-21 17:58
看样子他好像是想这样 "    kkk/mmm/nnn"  -->  "    mmm/nnn"

  1. sed 's|[^[[:space:]/]]*[^/]*/||'
复制代码


  1. [root@test9 pub]# echo "    mmm/nnn/lll" | sed 's|[^[[:space:]/]]*[^/]*/||'
  2.     nnn/lll
  3. [root@test9 pub]#
复制代码

作者: langheyang    时间: 2006-12-21 21:08
有一个脚本,能满足你的要求,我下去找找,然后发给你.
作者: letwave    时间: 2006-12-22 09:15
标题: 回复 14楼 langheyang 的帖子
lz问问题没有问清楚,你应该举简单例来说明你想要的结果。
作者: hblee    时间: 2007-04-19 13:15
谢谢各位大侠,时隔这么久你们还在回复,已经解决了,再次谢谢你们




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2