Как удалить все символы вплоть до указанного символа в текстовом файле? - PullRequest
0 голосов
/ 21 марта 2020

Quick sed question

В текстовом файле как мне удалить все символы вплоть до первого '[' включительно во всем файле и ничего больше?

Я пытался

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

, но он удаляет весь текст в каждой строке.

Поочередно,

У меня есть набор файлов, которые являются наборами JSON документы. Я пытаюсь импортировать их в эластичный поиск, но первый документ в файле - это информационный документ с нестандартным форматом, который портит импорт остальных документов. Я пытаюсь избавиться от первого документа, чтобы последующие документы могли загружаться правильно.

Вот документ:

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

Ответы [ 2 ]

0 голосов
/ 25 марта 2020

Я использовал две команды sed для выполнения задачи «удалить все символы до и включая первую найденную '['»

sed -n '/\[/,$p' example.json | sed -r '1 s/[^\[]*\[(.*)/\1/'
0 голосов
/ 22 марта 2020

Для всего, кроме простого s/old/new в отдельных строках, просто используйте awk. Это будет работать с использованием любого awk в любой оболочке на каждом UNIX поле:

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