当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 7 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 关于sed的一点疑问(已解决)
帖子发表于 : 2009-09-16 0:36 
头像

注册: 2008-07-21 9:44
帖子: 2371
地址: 深圳
送出感谢: 0 次
接收感谢: 0 次
最近在学习sed,发现使用sed来处理(编辑)文档时,sed 并非直接在原文档中进行修改,而是把对文档的修改效果直接复制输入到标准输出,虽然可以重定向到一个文件,但还是想问一下sed是否也可以直接对原文档进行编辑的工作?


_________________

My blog


最后由 Jarson 编辑于 2009-09-16 16:15,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: 关于sed的一点疑问
帖子发表于 : 2009-09-16 8:40 

注册: 2008-11-01 21:42
帖子: 1028
地址: 树下板凳
送出感谢: 0 次
接收感谢: 1
这个还是不太好,搞错了如何撤销 ?不象vi,改了还可以撤销,不能回退的话风险太大,还是要备份,就显得意义不大
不过还是期待高手解答啊 !


_________________
民族的脊梁,是踏实做事的人,非只知道骂街的泼妇。


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 关于sed的一点疑问
帖子发表于 : 2009-09-16 9:08 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
sed -i xxx yyy


_________________
● 鸣学


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 关于sed的一点疑问
帖子发表于 : 2009-09-16 10:04 
头像

注册: 2007-09-29 3:09
帖子: 5773
送出感谢: 0 次
接收感谢: 3
-i
我输入的正文过短...


_________________
HUNT Unfortunately No Talent...


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 关于sed的一点疑问
帖子发表于 : 2009-09-16 10:05 

注册: 2008-11-01 21:42
帖子: 1028
地址: 树下板凳
送出感谢: 0 次
接收感谢: 1
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if extension supplied)
还是备份的好 ee好强大


_________________
民族的脊梁,是踏实做事的人,非只知道骂街的泼妇。


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 关于sed的一点疑问
帖子发表于 : 2009-09-16 13:21 

注册: 2009-08-13 12:11
帖子: 15
送出感谢: 0 次
接收感谢: 0 次
sed的原理就是将文本一行一行的读入到一个模式空间(内存),然后进行修改后,打印到标准输出上。
如果你要修改文件,可以使用
sed -c


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 关于sed的一点疑问
帖子发表于 : 2009-09-16 16:13 
头像

注册: 2008-07-21 9:44
帖子: 2371
地址: 深圳
送出感谢: 0 次
接收感谢: 0 次
代码:
fhc2007@fhc2007-desktop:~$ sed --help
用法: sed [选项]... {脚本(如果没有其他脚本)} [输入文件]...

  -n, --quiet, --silent
                 取消自动打印模式空间
  -e 脚本, --expression=脚本
                 添加“脚本”到程序的运行列表
  -f 脚本文件, --file=脚本文件
                 添加“脚本文件”到程序的运行列表
  -i[扩展名], --in-place[=扩展名]
                 直接修改文件(如果指定扩展名就备份文件)
  -l N, --line-length=N
                 指定“l”命令的换行期望长度
  --posix
                 关闭所有 GNU 扩展
  -r, --regexp-extended
                 在脚本中使用扩展正则表达式
  -s, --separate
                 将输入文件视为各个独立的文件而不是一个长的连续输入
  -u, --unbuffered
                 从输入文件读取最少的数据,更频繁的刷新输出
      --help     打印帮助并退出
      --version  输出版本信息并退出

如果没有 -e, --expression, -f 或 --file 选项,那么第一个非选项参数被视为
sed脚本。其他非选项参数被视为输入文件,如果没有输入文件,那么程序将从标准
输入读取数据。

将错误报告通过电子邮件发送到:bonzini@gnu.org .
请务必将单词“sed”放在标题的某处。



算是弄明白了,多加一个 -i 选项就行 :em06


_________________

My blog


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 7 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

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


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

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

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