GNU/Linux >> Tutoriales Linux >  >> Linux

¿División de la salida en nuevas líneas?

Creé un script ./abc .

Quiero dividir la salida en nuevas líneas.

mi código:

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

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

mi salida es:

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

Quiero la salida como:

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

Respuesta aceptada:

Yo consideraría algo como esto:

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

El du variable toma el resultado de su búsqueda. Luego se divide en dos partes separadas por tabuladores para el printf declaración, con cada una de las partes interpoladas en la cadena de formato con %s .

Esta construcción debe manejar nombres de archivo que contengan líneas nuevas, tabulaciones y otros caracteres inusuales.


Linux
  1. ¿Cómo almacenar la salida de SHOW PROCESSLIST en un archivo en MySQL?

  2. ¿Insertar nuevas líneas con valores faltantes (na)?

  3. ¿Por qué Ls -l produce un tamaño diferente de Ls -s?

  4. Convierta la salida ls en csv

  5. ¿Cómo almacenar la salida del comando en una matriz en Ansible?

Cómo unir varias líneas en una en un archivo en Linux

Líneas blancas o negras en la salida de Konsole con escala de Plasma

Salida ls -l campo de tamaño con dígitos agrupados por miles?

Interpretando el error de entrada/salida dd

¿Cómo puedo ordenar la salida du -h por tamaño?

¿Redirigir la salida del comando de tiempo en Unix a una variable en bash?