如何从 Linux 中的文件中删除单个特殊字符?

如何从 Linux 中的文件中删除单个特殊字符?

我有这个 JSON 文件,我试图[从文件中删除它,但我很难弄清楚这个问题,需要一些帮助。

当前的:

[{"_id":"DATA"}

预期的:

{"_id":"DATA"}

这是一个非常大的文件;我无法手动编辑它,但[只出现一次。

答案1

使用sed

sed -i '1s/^\[//' file

或者如果您的版本sed没有-i

sed '1s/^\[//' file > file.tmp && mv file.tmp file

解释:

  • -i就地编辑文件(替代方案:将输出写入.tmp文件并移回原始名称)。
  • 1在第一行中,执行以下操作:
  • s/pattern/replacement/modifiers用替换替换模式并使用给定的修饰符。
    在您的情况下:模式用于在行的最开头^\[进行匹配,带有空替换且没有修饰符。]^

答案2

在Vim编辑器中,您可以简单地在命令模式下使用以下命令

%s/\[//g

相关内容