GNU/Linux >> Znalost Linux >  >> Linux

Rozdělení výstupu do nových řádků?

Vytvořil jsem skript ./abc .

Chci rozdělit výstup do nových řádků.

můj kód:

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

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

můj výstup je:

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

Chci výstup jako:

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

Přijatá odpověď:

Zvažoval bych něco takového:

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

du proměnná převezme výsledek vašeho hledání. Poté je rozdělen na dvě části oddělené tabulátory pro printf s každou částí interpolovanou do formátovacího řetězce pomocí %s .

Tato konstrukce by měla zpracovávat názvy souborů obsahující nové řádky, tabulátory a další neobvyklé znaky.


Linux
  1. Jak uložit výstup SHOW PROCESSLIST do souboru v MySQL?

  2. Co znamená velikost adresáře ve výstupu příkazu „ls -l“?

  3. Jak seřadit výstup Du podle velikosti?

  1. Vytvořit archiv dehtu rozdělený na bloky maximální velikosti?

  2. Výstup do Stdout a zároveň Grep do souboru?

  3. Jak vytisknout soubor a ignorovat řádky, které začínají „?“?

  1. Převeďte výstup ls na csv

  2. Bash zachycující výstup awk do pole

  3. jak zkopírovat řádky 10 až 15 souboru do jiného souboru v unixu?