GNU/Linux >> Belajar Linux >  >> Linux

Melanggar Output Menjadi Baris Baru?

Saya membuat skrip ./abc .

Saya ingin memecah output menjadi baris baru.

kode saya:

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

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

keluaran saya adalah:

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

Saya ingin hasilnya sebagai:

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

Jawaban yang Diterima:

Saya akan mempertimbangkan sesuatu seperti ini:

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

du variabel mengambil hasil pencarian Anda. Ini kemudian dibagi menjadi dua bagian yang dipisahkan tab untuk printf pernyataan, dengan masing-masing bagian diinterpolasi ke dalam format string dengan %s .

Konstruksi ini harus menangani nama file yang berisi baris baru, tab, dan karakter tidak biasa lainnya.


Linux
  1. Bagaimana cara Menyimpan output SHOW PROCESSLIST ke dalam file di MySQL?

  2. Sisipkan Baris Baru Dengan Nilai yang Hilang (na)?

  3. Mengapa Ls -l Menghasilkan Ukuran Yang Berbeda Dari Ls -s?

  1. Ubah keluaran ls menjadi csv

  2. Bagaimana cara menyimpan output perintah ke dalam array di Ansible?

  3. Menafsirkan kesalahan Input/Output dd

  1. Apa Arti Ukuran Direktori Dalam Output Perintah 'ls -l'?

  2. Bagaimana Mengurutkan Du Output Berdasarkan Ukuran?

  3. Buat Arsip Tar Dipecah Menjadi Blok Ukuran Maksimal?