LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 802|回复: 5

请教 >重定向错误

[复制链接]
发表于 2005-10-23 15:13:38 | 显示全部楼层 |阅读模式
我想把addfonts中的../去掉,采用sed 's/..\///g' addfonts 在屏幕上能看到正确结果,我想把其结果覆写回addfonts文件中,所以用了>addfonts,但结果为一空文件,不知为何?
请大虾赐教
发表于 2005-10-23 17:37:01 | 显示全部楼层
我的理解是, 你还没开始处理,这个文件就变成空的了。

  1. blazin@ubuntu:~$ cat testfile.txt
  2. something inside the testfile.
  3. blazin@ubuntu:~$ cat testfile.txt > testfile.txt
  4. cat: testfile.txt: input file is output file
  5. blazin@ubuntu:~$ cat testfile.txt
  6. blazin@ubuntu:~$ ls -l testfile.txt
  7. -rw-r--r--  1 blazin blazin 0 2005-10-23 17:31 testfile.txt
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-25 14:09:01 | 显示全部楼层
感谢BlazingBits,我试了一下就是你说的那个现象,那该如何修改才能讲sed后的结果覆盖回原来的文件中呢
回复 支持 反对

使用道具 举报

发表于 2005-10-25 16:50:41 | 显示全部楼层
一般来说是这样的:
sed 's/..\///g' addfonts > addfonts.bak
mv addfonts.bak addfonts
回复 支持 反对

使用道具 举报

发表于 2005-10-28 23:00:51 | 显示全部楼层
sed -i 's/..\///g' addfonts
回复 支持 反对

使用道具 举报

发表于 2005-10-28 23:19:20 | 显示全部楼层
Be careful to use the "-i", if anything wrong in the pattern matching, your good file will be gone...
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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