Scusa se questa ha una risposta altrove, non ho idea di come cercare il mio problema.
Stavo eseguendo alcune simulazioni su un server HPC Linux Redhat e il mio codice per la gestione della struttura delle cartelle per salvare l'output aveva un bug sfortunato. Il mio codice matlab per creare la cartella era:
folder = [sp.saveLocation, 'run_', sp.run_number, '/'];
dove sp.run_numberera un numero intero. Ho dimenticato di convertirlo in una stringa, ma per qualche motivo l'esecuzione mkdir(folder);(in matlab) è comunque riuscita. In effetti, le simulazioni sono state eseguite senza intoppi e i dati sono stati salvati nella directory corrispondente.
Ora, quando la struttura delle cartelle viene interrogata / stampata ottengo le seguenti situazioni:
- Quando provo a tab completamento automatico:
run_ run_^A/ run_^B/ run_^C/ run_^D/ run_^E/ run_^F/ run_^G/ run_^H/ run_^I/ - Quando uso
ls:run_ run_? run_? run_? run_? run_? run_? run_? run_? run_? run_?. - Quando trasferisco sul mio mac usando rsync, l'
--progressopzione mostra:run_\#003/ecc. Con (presumo) il numero corrispondente all'intero insp.run_numberimbottito a tre cifre, quindi la decima corsa èrun_\#010/ - Quando visualizzo le cartelle nel finder vedo
run_ run_ run_ run_ run_ run_ run_ run_ run_ run_? - Guardando questa domanda e usando il comando
ls | LC_ALL=C sed -n lottengo:
run_$
run_\001$
run_\002$
run_\003$
run_\004$
run_\005$
run_\006$
run_\a$
run_\b$
run_\t$
run_$
Non riesco a cdentrare nelle cartelle usando nessuna di queste rappresentazioni.
Ho migliaia di queste cartelle, quindi dovrò risolverlo con uno script. Quale di queste opzioni è la rappresentazione corretta della cartella? Come posso fare riferimento programmaticamente a queste cartelle in modo da rinominarle con un nome correttamente formattato usando uno script bash? E immagino per curiosità, come diavolo è potuto succedere in primo luogo?
run_e devo digitare qualcosa
/. Qualsiasi altro personaggio è valido, inclusi i personaggi di controllo. Non so cosa avrebbe fatto matlab se sp.run_number fosse 0 (probabilmente si interrompeva con un errore o produceva run_, poiché il byte NUL avrebbe terminato la stringa del nome della directory). Naturalmente, ciò sarebbe problematico anche per i valori a 16 bit (o superiori) che contenevano un byte NUL, e varierebbe anche in base all'endianità del sistema che esegue matlab.
^Anon è letteralmente^seguito daA, ma Ctrl-A (puoi digitarlo usando Ctrl-V Ctrl-A poiché Ctrl-A è generalmente una scorciatoia per la shell).