Якщо я сортую файл, я хочу зберегти його в новому. Я використовую для цього просто:
sort -nk{fieldnumber} test.json > testsort.json
На виході стовпці переміщуються, і стовпчик, який я відсортував, знаходиться у випадковому порядку (не висхідний). Чому це трапляється? Також я хочу розділити цей відсортований файл на багато частин. Я хочу, щоб усі частини також були відсортовані за стовпцем, як ось тут:
partaa
{'a':'a', 'b':'b', 'c':1}
{'a':'a', 'b':'b', 'c':1}
{'a':'a', 'b':'b', 'c':2}
partab
{'a':'a', 'b':'b', 'c':2}
{'a':'a', 'b':'b', 'c':3}
{'a':'a', 'b':'b', 'c':3}
partac
{'a':'a', 'b':'b', 'c':4}
{'a':'a', 'b':'b', 'c':5}
{'a':'a', 'b':'b', 'c':6}
Я використовую для цього
split -l 100 testsort.json part
У всякому разі, у мене весь час перетасований, не упорядкований вихід. (наприклад, якесь значення partac може бути меншим, ніж від partab)
PS
Дякую, я сама знайшла проблему. Введення було пошкодженим, оскільки деякі рядки мають додаткові поля.
{'a':'a', 'b':'b', 'c':2}
{'a':'a', 'b':'b', 'c':1}
{'a':'a', 'b':'b', 'c':2}
{'a':'a', 'b':'b', 'd':'d', 'c':1}
{'a':'a', 'b':'b', 'c':3}
{'a':'a', 'b':'b', 'f':'f', 'c':4}
Я будую наступний регулярний вираз, який шукає певне поле, беруть числові значення, виводять їх попереду і сортують
sed -e 's/^\(.*columnname\)\([^,]*\)/\2\t\1\2/;s/^[" :]*//' test.json | sort -nk1 |sed -e 's/^[^{]*//' > testSort.json
'f':'f',
робить це ускладнюється sort
окремо; Він не створений для подібних даних. Тож sed
гарна ідея.