当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 34 篇帖子 ]  前往页数 1, 2, 3  下一页
作者 内容
1 楼 
 文章标题 : [问题]请问sed可以获得编辑的文件名并插入文本中吗?
帖子发表于 : 2007-11-11 23:10 

注册: 2007-10-17 18:23
帖子: 33
送出感谢: 0 次
接收感谢: 0 次
我有500个文本文件,我想在每个文件首行插入文件名,用sed可以吗?如果sed不能获取文件名,用什么可以实现呢?谢谢。


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-11-11 23:34 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
$0?


_________________
● 鸣学


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-11-11 23:35 
头像

注册: 2007-07-11 20:59
帖子: 3922
送出感谢: 0 次
接收感谢: 0 次
eexpress 写道:
$0?


这是什么东东???


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-11-11 23:48 

注册: 2007-10-17 18:23
帖子: 33
送出感谢: 0 次
接收感谢: 0 次
2楼的兄弟可以说明白些吗?我对shell不熟悉,谢谢。


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-11-11 23:51 
头像

注册: 2007-07-11 20:59
帖子: 3922
送出感谢: 0 次
接收感谢: 0 次
他一直是这样!!!看来你要自己GOOGLE了!!


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2007-11-12 0:27 

注册: 2007-10-17 18:23
帖子: 33
送出感谢: 0 次
接收感谢: 0 次
google和baidu都失败了,烦哪位知道的兄弟告诉一声。


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2007-11-12 9:46 

注册: 2007-10-17 18:23
帖子: 33
送出感谢: 0 次
接收感谢: 0 次
自己顶下。。。。。 :cry: :cry:


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2007-11-12 9:59 

注册: 2007-05-11 8:47
帖子: 133
送出感谢: 0 次
接收感谢: 0 次
for i in `ls *.txt`;do echo $i >> $i;done
这个可以插到末行。


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2007-11-12 10:05 

注册: 2007-05-11 8:47
帖子: 133
送出感谢: 0 次
接收感谢: 0 次
如果 是行首的话,就不知道有没有什么命令了。不过可以这样
for i in `ls *.txt`;do echo $i > temp;cat $i >>temp;mv -f temp $i;done


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2007-11-12 10:07 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
for i in `ls *.txt`;do cp $i tmp; echo $i > $i; cat tmp >> $i;done ; rm tmp


到行首就要这么搞一下了,呵呵.


_________________
关注我的blog: ε==3


页首
 用户资料  
 
11 楼 
 文章标题 : Re: [问题]请问sed可以获得编辑的文件名并插入文本中吗?
帖子发表于 : 2007-11-12 10:07 
头像

注册: 2007-04-28 21:38
帖子: 1026
送出感谢: 0 次
接收感谢: 0 次
gbd 写道:
我有500个文本文件,我想在每个文件首行插入文件名,用sed可以吗?如果sed不能获取文件名,用什么可以实现呢?谢谢。

gedit a.sh

代码:
#!/bin/bash
for i in `ls -1 *.txt` ; do

    echo "$i" >> /tmp/tmp
    cat  $i  >> /tmp/tmp
    mv -v /tmp/tmp $i
    cat /dev/null > /tmp/tmp
done
rm -f /tmp/tmp


把这个文件跟那500个文件放在一起,执行就好了。


_________________
thinkpad x61 2G DDR no cdrom
--------------------------------------------
ABS学习中
sed学习中
awk学习中
perl学习中
新手描述不清,老手猜测不到,胡乱指挥一通,后果难以预料


页首
 用户资料  
 
12 楼 
 文章标题 :
帖子发表于 : 2007-11-12 10:08 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
呃,慢了点,重复了,呵呵


_________________
关注我的blog: ε==3


页首
 用户资料  
 
13 楼 
 文章标题 :
帖子发表于 : 2007-11-12 10:09 

注册: 2007-10-17 18:23
帖子: 33
送出感谢: 0 次
接收感谢: 0 次
谢谢各位,我试试


页首
 用户资料  
 
14 楼 
 文章标题 :
帖子发表于 : 2007-11-12 10:14 
头像

注册: 2007-04-28 21:38
帖子: 1026
送出感谢: 0 次
接收感谢: 0 次
只能执行一次,执行第二次就会有重复行插入。。。。
我改改。。。

代码:
#!/bin/bash
for i in `ls -1 *.txt` ; do

    if test `head -1 $i` == $i ; then
            continue;
    fi
    echo "$i" >> /tmp/tmp
    cat  $i  >> /tmp/tmp
    mv -v /tmp/tmp $i
    cat /dev/null > /tmp/tmp
done
rm -f /tmp/tmp


_________________
thinkpad x61 2G DDR no cdrom
--------------------------------------------
ABS学习中
sed学习中
awk学习中
perl学习中
新手描述不清,老手猜测不到,胡乱指挥一通,后果难以预料


页首
 用户资料  
 
15 楼 
 文章标题 :
帖子发表于 : 2007-11-12 10:18 

注册: 2007-10-17 18:23
帖子: 33
送出感谢: 0 次
接收感谢: 0 次
失败了: Permission denied


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 34 篇帖子 ]  前往页数 1, 2, 3  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译