1

我必须删除大文件中第 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 来实现这一点。

编辑:

现在我希望用一个就地替换所有双逗号的 aoocurances。怎么可能呢?

4

3 回答 3

5

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

FILE这将在原地 ( )编辑文件 ( -i),删除该.位置的任何字符 ( )130405

于 2013-05-06T17:53:50.897 回答
2

为什么sed当你有cut

cut -c -130404,130406-
于 2013-05-06T17:57:30.230 回答
1

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

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

如果你有一个sed支持它的版本,你可以sed -i -e '...' file跳过重定向(但sed -i本质上仍然做同样的事情,只是使用一个临时文件)。

于 2013-05-06T17:52:50.853 回答