分页: 1 / 1

关于sed的一点疑问(已解决)

发表于 : 2009-09-16 0:36
Jarson
最近在学习sed,发现使用sed来处理(编辑)文档时,sed 并非直接在原文档中进行修改,而是把对文档的修改效果直接复制输入到标准输出,虽然可以重定向到一个文件,但还是想问一下sed是否也可以直接对原文档进行编辑的工作?

Re: 关于sed的一点疑问

发表于 : 2009-09-16 8:40
t3swing
这个还是不太好,搞错了如何撤销 ?不象vi,改了还可以撤销,不能回退的话风险太大,还是要备份,就显得意义不大
不过还是期待高手解答啊 !

Re: 关于sed的一点疑问

发表于 : 2009-09-16 9:08
eexpress
sed -i xxx yyy

Re: 关于sed的一点疑问

发表于 : 2009-09-16 10:04
HuntXu
-i
我输入的正文过短...

Re: 关于sed的一点疑问

发表于 : 2009-09-16 10:05
t3swing
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if extension supplied)
还是备份的好 ee好强大

Re: 关于sed的一点疑问

发表于 : 2009-09-16 13:21
cocoready
sed的原理就是将文本一行一行的读入到一个模式空间(内存),然后进行修改后,打印到标准输出上。
如果你要修改文件,可以使用
sed -c

Re: 关于sed的一点疑问

发表于 : 2009-09-16 16:13
Jarson

代码: 全选

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脚本。其他非选项参数被视为输入文件,如果没有输入文件,那么程序将从标准
输入读取数据。

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

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