How can I delete a custom field (other than GUI)?
There are a few ways to delete a custom field other than the UI:

Use the API Explorer and then entity CustomField / CustomGroup. That will allow you to delete them, but you will need to know the ID of the CustomField or CustomGroup. You can find that with the API Explorer as well. More info: https://docs.civicrm.org/dev/en/latest/api/#api-explorer
In the database, but will need to know exactly what you are doing! This is not something to recommend without a sound knowledge of the CiviCRM database. You have to make sure all the tables and data are correct and in sync with each other. There are a few tables involved:
civicrm_custom_group, which holds the details of the custom group. One of the columns is the table_name, which will hold the name of the table where the actual custom data is
civicrm_custom_field, which holds the details of the custom fields, linked with the column custom_group_id. One of the columns is column_name, which is the name of the column in the actual table with data