标签的简单sed更换神秘失败
这应该真的很简单,但是由于某些原因它不起作用: sed -i.bak -E 's/\t/ /' file.txt 不是替换制表符,而是替换t字符。我已经尝试了所有可以想到的变体,使用引号等。我用Google搜索,发现其他所有人都使用非常相似的表达式,它们似乎很适合他们。 这-E是OS X的东西。我以为失败可能是OS X的一些怪异的结果sed,所以我也使用Ruby进行了尝试(不带-i),并且得到了相同的结果: ruby -pe '$_.gsub!(/\t/," ")' < file.txt > file.new 我在OS X和iTerm上使用的是Bash 3.2.51,尽管我看不到其中任何一个都非常相关。我没有设置任何奇怪的环境变量,尽管我可以发布您认为可能相关的任何变量。 有什么事吗 更新:我在尝试Ruby版本时肯定犯了其他错误或错字,因为Gilles指出它确实有效(而且我从来没有让他把我弄错!)。我不确定发生了什么,但是我很确定那一定是我的错误。