GNU/Linux >> Tutoriels Linux >  >> Linux

Décomposer la production en nouvelles lignes ?

J'ai créé un script ./abc .

Je veux diviser la sortie en nouvelles lignes.

moncode :

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

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

ma sortie est :

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

Je veux que la sortie soit :

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

Réponse acceptée :

Je considérerais quelque chose comme ceci :

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

Le du variable prend le résultat de votre recherche. Il est ensuite divisé en deux parties séparées par des tabulations pour le printf déclaration, avec chacune des parties interpolées dans la chaîne de format avec %s .

Cette construction doit gérer les noms de fichiers contenant des retours à la ligne, des tabulations et d'autres caractères inhabituels.


Linux
  1. Que signifie la taille d'un répertoire dans la sortie de la commande "ls -l" ?

  2. Comment trier la sortie par taille ?

  3. Créer une archive Tar divisée en blocs d'une taille maximale ?

  4. Insérer de nouvelles lignes avec des valeurs manquantes (na) ?

  5. Comment générer un fichier et ignorer les lignes commençant par "?" ?

Comment joindre plusieurs lignes en une seule dans un fichier sous Linux

Lignes blanches ou noires dans la sortie Konsole avec mise à l'échelle plasma

Convertir la sortie ls en csv

Comment concaténer plusieurs lignes de sortie sur une seule ligne ?

comment copier les lignes 10 à 15 d'un fichier dans un autre fichier, sous unix ?

Rediriger la sortie de la commande time sous unix vers une variable bash ?