shell脚本中sed的疑问?

想问一下下面两个的区别:

sed -i "s/old/new/g"
sed -i "s#old#new#g"

两种写法中,/和#有什么区别么

阅读 1.6k
2 个回答

这里没啥区别,就是个模式分隔符,你还可以用冒号。

之所以弄出来好几种分隔符,就是因为可能你要查找或替换的文本里可能会包含这个分隔符,这样你就可以选择用另一个分隔符来分隔,就省得再转义了,可读性会稍好一些。这点是继承自 vi 的,vi 里的查找替换命令就支持多种分隔符。

The s command

The / characters may be uniformly replaced by any other single character within any given s command. The / character (or whatever other character is used in its stead) can appear in the regexp or replacement only if it is preceded by a \ character.

甚至可以写 'ssoldsnewsg'

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进