с помощью инструмента Json под названием json ( https://github.com/trentm/json )
$ json -ga 'stationNameAssoc.[0].stationId' < input
6248915749115539177
7597999415247634177
или используйте его step по шагам:
cat input | json -ga 'stationNameAssoc' | json -ga stationId
документация в: http://trentm.com/json/
, если не установлена:
install node
and sudo npm install -g json
Вы можете использовать sponge
, как упоминалось в Программа, которая может буферизовать стандартный ввод или файл . Вы можете передать ему весь цикл, точно так же, как ввод перенаправляется на него:
while read -r line ; do
echo "$line" | sed -r 's/\</\n/g' | sort | tr '\n' ' ' ;
echo
done < filename | sponge filename
В Perl то же самое можно сделать с этим (количество пробелов другое):
perl -Mlocale -i -lne 'print join " ", sort split/(?<=\.)| /' filename
awk подход:
awk 'BEGIN{IGNORECASE=1;}{ gsub(/\./,". ", $0); split($0, w, " ");
asort(w);l=""; for(i in w) {l=l" "w[i]} print l}' file
Вывод:
1. 2. 3. e4 e5 Nc6 Nf3
1. 2. 3. d4 d5 dxe4 e4
1. 2. 3. e4 e5 Nf3 Nf6
IGNORECASE может быть установлен в командной строке или в правиле BEGIN
split ($ 0, w, "");
- разбивает строку на отдельные слова
asort (w);
- сортирует значения массива (слова)
для (i in w) {l = l "" w [i]}
- объединение отсортированных слов в одну строку