5

我需要将每次出现的 to 更改!:组文件中的字段分隔符。

sed 's/!/:/g' filename > newfilename 

但我得到错误/: Event not found

4

2 回答 2

12

您正在使用csh,因此!被解释为修复此转义!或仅使用bash

sed 's/\!/:/g' file > outfile

使用csh用于! 命令历史参考,它甚至可以在一对撇号'或引号内工作",除非用反斜杠转义\

于 2013-05-07T14:51:45.653 回答
1

我可能会验证文件存在和文件权限,因为 sed 行工作得很好:

[root@hacklab5 ~]# cat /tmp/sed.org 
dewed!Ddew!de
dewwe!ds!dewe
[root@hacklab5 ~]# sed 's/!/:/g' /tmp/sed.org 
dewed:Ddew:de
dewwe:ds:dewe
[root@hacklab5 ~]# sed 's/!/:/g' /tmp/sed.org > /tmp/sed.new
[root@hacklab5 ~]# cat /tmp/sed.new 
dewed:Ddew:de
dewwe:ds:dewe
于 2013-05-07T14:45:28.040 回答