如何使用sed删除文件中的第n个字符

时间:2013-05-06 17:42:31

标签: linux file-io sed

我必须删除大文件中第n个位置的字符。 Vi挂起了这么大的文件。我知道在sed中会有一些简单的命令来执行此操作。但是,我发现很难理解sed脚本及其表达式。

我所拥有的文件内容如下:

  

{“query”:“Lock and”,“timestamp”:“2012-12-28T00:00:00.045000 + 00:00”,   “productId”:322506} ,, {“query”:“Velvet Crush”,“timestamp”:   “2012-12-28T00:00:00.045000 + 00:00”,“productId”:134363}

我必须删除该文件中,个字符的额外130405。我如何使用sed来实现这一目标。

编辑:

现在我希望用一个就地替换双逗号的所有副本。怎么办?

3 个答案:

答案 0 :(得分:5)

sed -i 's/.//130405' FILE

这会编辑文件(FILE)(-i),删除.位置的任何字符130405

答案 1 :(得分:2)

为什么sedcut

cut -c -130404,130406-

答案 2 :(得分:0)

甚至不用担心双逗号的确切位置,并假设您想在整个文件中修复任何双逗号:

sed -e 's/,,/,/g' < file > file.new
mv file.new file

如果你有sed的版本支持它,你可以sed -i -e '...' file跳过重定向(但sed -i基本上完全相同,只是使用临时文件)