quebra de saída em novas linhas

0

Eu criei um script ./abc .

Eu quero dividir a saída em novas linhas.

mycode:

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

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

minha saída é:

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

Eu quero a saída como:

size of files: 20kb
         /path/to/sport
    
por buddha sreekanth 06.05.2015 / 15:59

2 respostas

1

Eu consideraria algo assim:

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

A variável du pega o resultado da sua pesquisa. Em seguida, ele é dividido em duas partes separadas por tabulações para a instrução printf , com cada uma das partes interpoladas na string de formato com %s .

Essa construção deve manipular nomes de arquivos contendo novas linhas, guias e outros caracteres incomuns.

    
por 06.05.2015 / 17:01
0
./abc | sed 's/files: /files: \n/'

Eu tentei no meu sistema com o comando echo :

$ echo "size of files: 20kb /path/to/sport" | sed 's/files: /files: \n\t/'
size of files:
        20kb /path/to/sport
    
por 06.05.2015 / 16:07