【问题标题】:Replace "{" with "x " in files将文件中的“{”替换为“x”
【发布时间】:2012-03-29 08:26:46
【问题描述】:

我希望处理文件(可以读取为 txtfiles 的.krn 文件)并将每次出现的 { 替换为 x 。是否可以在命令行上执行此操作?

由于我希望在许多文件中执行此操作,我的想法是能够浏览文件夹中的所有文件并一个接一个地处理它们。如何做到这一点?我知道grep 可能会派上用场...

【问题讨论】:

标签: linux command grep replace


【解决方案1】:

你可以使用sed:

sed -i 's/{/x/g' *

【讨论】:

  • 大括号不需要转义吗?如果没有,为什么不呢?
  • 该死! 28 秒太晚了:-)。
  • @EricWendelin:默认情况下,sed 使用 POSIX 基本正则表达式 (BRE),其中 { 表示文字 { 除非您使用反斜杠它的特殊含义。 (我认为 BRE 在 Perl 引入约定 \X 只有在 X 是字母数字时才可以是特殊的约定之前就已经存在;无论如何,它们不遵循该约定。)使用扩展正则表达式(ERE),其中@ 987654328@ 具有特殊含义,\{ 对其进行转义,您将使用-r 标志:sed -i -r 's/\{/x/g' *。 (不过,我不确定 sed -r 是否是标准的,或者它是否是 GNU 扩展。)
  • 反斜杠与否,sed 是一个很好的答案。它让我的项目摆脱了麻烦,而无需我编写正式的程序。
【解决方案2】:

sed 对这项工作来说是错误的工具,但如果您要使用 sed,请使用 y 而不是 s

sed 'y/{/x/'

翻译字符的正确工具是tr

tr { x

【讨论】:

    【解决方案3】:

    如果您打开了文件,请使用以下命令...

    :%s/{/x/
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多