Bagaimana cara output ls -l
dimodifikasi ke bidang terpisah menggunakan tab bukan spasi? Saya ingin menempelkan output ke spreadsheet; padding dengan jumlah ruang variabel membuatnya sulit untuk melakukannya. Menggambarkan:
drwxr-xr-x 2 root root 4096 Sep 26 11:43 wpa_supplicant -rw-r ----- 1 dialout root 66 Sep 26 11:43 wvdial.conf drwxr-xr-x 9 root root 4096 8 Okt 08:21 X11 drwxr-xr-x 12 root root 4096 18 Februari 23:31 xdg drwxr-xr-x 2 root root 4096 31 Jan 06:11 xml drwxr-xr-x 2 root root 4096 22 Nov 07:26 xul-ext -rw-r - r-- 1 root root 349 Jan 13 2012 zsh_command_not_found
Dalam kutipan dari yang ls -l /etc
ditunjukkan di atas, baris 1, 2 dan 3 memiliki satu digit di kolom 2 sedangkan baris 4 memiliki dua. Itu berarti perataan dicapai dengan menggunakan dua spasi untuk memisahkan kolom 1 dan 2 di baris 1-3, tetapi hanya satu spasi di baris 4.
ls
dikatakan , parsing outputnya baik-baik saja. Itu jarang tujuannya. Bisa dibilang itu ada di sini. Saya pikir metode yang Anda gunakan cukup baik (metode apa pun akan menghasilkan hasil yang tidak diinginkan dengan sejumlah kebutuhan)! Namun, bisa dibilang parsingls
mungkin lebih baik. Pertimbangkan kasus nama file yang sebenarnya memiliki karakter tab di dalamnya.ls -l
mengganti tab dengan?
karakter. Script Anda mempertahankan karakter tab, yang akan membuat kolom tambahan jika hasilnya diartikan sebagai tab-delimeted dan digunakan untuk membuat spreadsheet. Ini rusak parah jika nama file memiliki baris baru.