diff --git a/src/calibre/db/cli/cmd_list.py b/src/calibre/db/cli/cmd_list.py index ebe16113fc..0b9395d635 100644 --- a/src/calibre/db/cli/cmd_list.py +++ b/src/calibre/db/cli/cmd_list.py @@ -55,7 +55,7 @@ def implementation( for sf in sort_fields: if sf not in afields: return f'Unknown sort field: {sf}' - sort_spec = [(sf, ascending) for sf in sort_fields] + sort_spec = [((sf if not sf.startswith('*') else '#'+sf[1:]), ascending) for sf in sort_fields] if not set(fields).issubset(afields): return 'Unknown fields: {}'.format(', '.join(set(fields) - afields)) if search_text: @@ -284,7 +284,11 @@ List the books available in the calibre database. '--sort-by', default=None, help=_( - 'The field by which to sort the results. You can specify multiple fields by separating them with commas.\nAvailable fields: {0}\nDefault: {1}' + 'The field by which to sort the results. You can specify multiple fields by' + ' separating them with commas.\nAvailable fields: {0}\nDefault: {1}.' + ' In addition to the builtin fields above, custom fields are' + ' also available as *field_name, for example, for a custom field' + ' #rating, use the name: *rating' ).format(', '.join(sorted(FIELDS)), 'id') ) parser.add_option(