LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: crazys

求助 请问如何直接对文件中的内容做修改替换

[复制链接]
发表于 2004-9-27 22:55:40 | 显示全部楼层
还是sed,awk好.重定向留有恢复的余地.shell功能强大,但是越强大越有危险.
发表于 2004-9-27 23:59:40 | 显示全部楼层
最初由 食古不化 发表
还是sed,awk好.重定向留有恢复的余地.shell功能强大,但是越强大越有危险.

这就是说sed,awk为什么叫流编辑器的原因,他们先把用户要的结果放在缓冲区里,然后根据需要再通过重定向做出正确的选择!
发表于 2004-9-28 11:04:43 | 显示全部楼层
sed -i命令的确相当方便,偶也是最近才知道的。不过老版本的sed没-i参数
发表于 2004-9-28 15:11:57 | 显示全部楼层
这个参数不错啊:thank
发表于 2004-9-29 13:04:43 | 显示全部楼层
sed -i 只能 正着用, 如 sed -i 'cmd' filename, 如果作为| 的input, 还是一样的. 如 cat filename | sed -i 'cmd' 这样是改不了文件的.
 楼主| 发表于 2004-9-30 10:06:54 | 显示全部楼层
我的sed不能使用-i的参数呀,
对某一目录下所有文件操作,需把所有包含abc的当前行前面加#号注释掉,该如何实现,sed没-i的参数.谢谢
发表于 2004-9-30 12:23:16 | 显示全部楼层

  1. cd /pathdir
  2. for file in *;do
  3.     [[ -f $file ]]&&vim -e -s -c ":%s/\(.*\)\(abc\)\(.*\)/#\1\2\3/" -c ":wq!" $file
  4. done
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表