我需要将!
的每次出现更改为:
作为组文件中的字段分隔符。
sed 's/!/:/g' filename > newfilename
但我收到错误/: Event not found
?
答案 0 :(得分:8)
您正在使用csh
,因此正在解释!
以解决此!
或仅使用bash
的问题:
sed 's/\!/:/g' file > outfile
使用csh
!
用于命令历史记录引用,它甚至可以在一对撇号'
或引号"
内使用,除非使用反斜杠{{}进行转义1}}。
答案 1 :(得分: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