Środowisko Unix ma doskonałe narzędzia do analizowania tekstu w różnych formach. Jednak ostatnio dane nie są w tradycyjnych (historycznych) formatach (CSV, TSV, oparte na rekordach lub innych bazujących na ogranicznikach), jak kiedyś. Obecnie dane są wymieniane w ustrukturyzowanych formatach, takich jak XML / JSON.
Wiem, że istnieje kilka dobrych narzędzi, takich jak sed, awk i Perl, które mogą odgryźć prawie każdą formę danych. Jednak, aby pracować z tego rodzaju uporządkowanymi danymi, często trzeba napisać kompletny program, a biorąc pod uwagę mało czasu dostępnego do wyodrębnienia informacji, należy usiąść i odkryć całą logikę tego, co chcemy zapytać i umieścić programowo. Czasami nie jest to w porządku - po prostu dlatego, że informacje wyodrębnione z tych plików stanowią dane wejściowe do dalszej pracy; także ze względu na czas potrzebny do znalezienia odpowiedniego rozwiązania i zakodowania go. Potrzebne jest narzędzie wiersza polecenia z wystarczającymi przełącznikami do wyszukiwania, wyszukiwania i zrzutu danych.
Szukam narzędzi, które pobierają XML / JSON lub inne formy danych strukturalnych i wrzucają je do innych formatów, takich jak csv itp., Aby stamtąd można było użyć innych poleceń, aby uzyskać z nich jakiekolwiek informacje.
Czy znasz jakieś narzędzia wiersza poleceń, które wykonują tego rodzaju pracę? Czy są już dostępne skrypty awk / Perl?
źródło
jq
jest dobrym narzędziem do parsowania JSON w powłoce: stedolan.github.io/jqMyślę, że moduły Perla, Pythona lub Ruby mogą być z powodzeniem użyte do tego. I każdy z nich może być wykorzystany do tworzenia skryptów.
źródło
ruby -e 'program text'
„pisaniem scenariusza”?perl -0777 -MJSON -e '$t=from_json(<STDIN>); do_something_with($t)'
pozwala przetwarzać JSON przy minimum zamieszania. Nadal musisz jakoś powiedzieć komputerowi, co zrobić z danymi.