shell中printf的應用

來源:互聯網
上載者:User

1。如何使用echo輸出一個字串str="-n". 由於-n是echo的一個參數,所以一般的方法echo "$str"是無法輸出的.
解決方案可以有:

echo x$str | sed 's/^x//'
echo -ne "$str\n"
echo -e "$str\n\c"
printf "%s\n" $str(這樣也可以)

printf格式化輸出

%s格式符表示輸出的是字串,後面對應的參數用字元數組或是字元指標

2。shell怎麼定義一個目錄的資料結構?(find . -type d -maxdepth 1

Q:想統計一個目錄下各個檔案的基本資料,如檔案名稱、檔案目錄和大小等資訊,然後統一產生一個檔案,在shell指令碼大概應該如何處理?

A:用awk處理 ls -lh 出來的結果。

1)每行的最後一個欄位(一般是第9個欄位)為檔案名稱。

2)檔案目錄是指檔案所在的目錄,還是判斷一個檔案是不是目錄? 如果是前者,用 pwd 命令即可獲得。(下面的代碼根據這種情況來) 如果是後者,根據 ls -lh 結果每行第一個字元判斷,如果是d表示為目錄(directory)。

3)擷取檔案大小根據第5個欄位。 shell指令碼大致如下:#!/bin/shls -lh "$1" | awk 'BEGIN{printf("filename\tdirectory\tsize\n")}NR>1{printf("%s\t%s\t%s\n",$NF,'\"$1\"',$5)}' >file.txtexit 0 指令碼儲存為 statistic.sh運行如下命令即可:sh statistic.sh [要統計的目錄名]

結果儲存在目前的目錄下的 file.txt 中。

Q:檔案目錄指的是檔案所在的目錄。如何要繼續統計子目錄下的檔案的話,應該怎樣完善它?

A:目錄下還有子目錄,子目錄下還有子目錄,這個無窮盡了。直接:ls -lhR >file.txt這個命令就能列出包括子目錄內容在內的檔案清單。或者: tree -hD >file.txt產生樹狀結構的檔案目錄,包括每個檔案(目錄)的大小及最後修改時間。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.