def validate_rut(rut):
    """
    Validates a Chilean RUT (Rol Único Tributario).
    
    Args:
        rut (str): The RUT to validate, formatted as '12345678-9'.
    
    Returns:
        bool: True if the RUT is valid, False otherwise.
    """
    rut = rut.replace(".", "").strip()
    if not rut or '-' not in rut:
        return False
    
    try:
        body, dv = rut.split('-')
        body = int(body)
        dv = dv.upper()
    except ValueError:
        return False
    
    if len(str(body)) < 7 or len(str(body)) > 8:
        return False
    
    # Calculate the expected DV
    total = 0
    factor = 2
    for digit in reversed(str(body)):
        total += int(digit) * factor
        factor = factor + 1 if factor < 7 else 2
    
    expected_dv = str((11 - (total % 11)) % 11)
    if expected_dv == '10':
        expected_dv = 'K'
    
    return dv == expected_dv

if __name__ == "__main__":
    # Example usage
    print(validate_rut("1234567-10"))  # Should return False, invalid
    print(validate_rut("21382334-5"))  # Should return True, validity
    print(validate_rut("21975985-1"))  # Should return True, validity