如何删除文本文件中包含指定字符的所有字符?

问题描述 投票:0回答:2

快速问题

在文本文件中,如何删除所有字符,包括在整个文件中找到的第一个'[',没有其他字符?

我尝试过

sed "s/^[^\[]*\[//" example.json

但是它会删除每一行中的所有文本。

或者,

我有一组文件,这些文件是JSON文档的集合。我正在尝试将它们导入Elasticsearch,但是文件中的第一个文档是具有非标准布局的信息文档,该文档使其余文档的导入变得混乱。我正在尝试删除第一个文档,以便后续文档可以正确加载。

这里是文档:

https://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&starttime=2014-01-01&endtime=2014-01-02

json bash sed
2个回答
0
投票

对于单个字符串,除了简单的s/old/new以外,请使用awk。这将在每个UNIX框的任何shell中使用任何awk进行工作:

awk 'sub(/[^[]*\[/,""){f=1} f' file

0
投票

我使用了两个sed命令来实现“删除直到找到的第一个'['的所有字符”的任务”

sed -n '/\[/,$p' example.json | sed -r '1 s/[^\[]*\[(.*)/\1/'
© www.soinside.com 2019 - 2024. All rights reserved.