【问题标题】:replace $ in the file content替换文件内容中的 $
【发布时间】:2016-02-22 16:49:02
【问题描述】:

在 unix 中,如何替换文件中所有行中的 $ 符号(仅在字母之间)?

示例文件内容

abcd$efg
abc$_efg
abc123_$1def

样本输出应该是

abcd_efg
abc$_efg
abc123_$1def

【问题讨论】:

  • sed 's/\([a-zA-Z]\)\$\([a-zA-Z]\)/\1_\2/'
  • 1_ 和 2 是什么意思?
  • @vignesh 您可能想阅读本指南:theunixschool.com/2014/08/…sed - 从文件中删除/删除字符的 20 个示例
  • @dawg,您可以使用[[:alpha:]] 代替[a-zA-Z]

标签: bash shell unix ksh


【解决方案1】:

你可以像这样使用sed

$ echo 'abcd$efg
abc$_efg
abc123_$1def' | sed 's/\([[:alpha:]]\)\$\([[:alpha:]]\)/\1_\2/g'

打印:

abcd_efg
abc$_efg
abc123_$1def

\1\2 替换了与$ 相邻的字符,因为sed 缺少环视。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-10
    • 2012-01-25
    • 2014-12-29
    • 1970-01-01
    • 2011-04-04
    • 1970-01-01
    • 2012-11-02
    • 2011-05-06
    相关资源
    最近更新 更多