GNU/Linux >> Linux Esercitazione >  >> Linux

Rottura dell'output in nuove righe?

Ho creato uno script ./abc .

Voglio suddividere l'output in nuove righe.

miocodice:

#!/bin/bash
dir="$1"

echo -n "size of file:"
du -hba $dir | sort -n -r | tail -1

il mio output è:

size of files: 20kb
         /path/to/sport

Voglio l'output come:

size of files: 20kb
         /path/to/sport

Risposta accettata:

Prenderei in considerazione qualcosa del genere:

du="$(du -hba "$dir" | sort -n -r | tail -1)"
printf "size of file: %snt%sn" "${du/$'t'*}" "${du#*$'t'}"

Il du variabile prende il risultato della tua ricerca. Viene quindi suddiviso in due parti separate da tabulazioni per il printf istruzione, con ciascuna delle parti interpolate nella stringa di formato con %s .

Questo costrutto dovrebbe gestire nomi di file contenenti newline, tabulazioni e altri caratteri insoliti.


Linux
  1. Cosa significa la dimensione di una directory nell'output del comando 'ls -l'?

  2. Come ordinare l'output per dimensione?

  3. Creare un archivio di catrame diviso in blocchi di dimensioni massime?

  4. Output su Stdout e allo stesso tempo Grep in un file?

  5. Come generare file e ignorare le righe che iniziano con "?"?

Come unire più righe in una in un file in Linux

Linee bianche o nere nell'output di Konsole con ridimensionamento Plasma

Inserire nuove righe con valori mancanti (na)?

Come concatenare più righe di output in una riga?

Come archiviare l'output del comando nell'array in Ansible?

Output ls -l size field con cifre raggruppate per migliaia?