2013-08-12 74 views
3

所以我用以下命令查找命令的結果得到的文件列表以及它們的目錄與報價,圍繞着報價

find /path -type f -mtime -100 -daystart -printf "%f\n" | sed 's/^/"/g' | sed 's/$/"/g' | tr '\n' ' '` 

包圍但現在我想只有文件名上有自己如此我加

-printf "%f\n" 

給予我

find /path -type f -mtime -100 -daystart -printf "%f\n" | sed 's/^/"/g' | sed 's/$/"/g' | tr '\n' ' '` 

但現在的結果在不再包圍引號。我認爲printf命令不會爲每個結果創建換行符。

任何幫助,將不勝感激。

+1

您正在使用'tr'命令刪除換行符 – hek2mgl

回答

4

反向在您的find命令結束時表示您將命令輸出重定向到變量。正如hex2mgl所評論的,您正在使用tr刪除換行符。即使您沒有將結果傳遞給tr,也可能您的變量不會顯示換行符,除非引用。

例如,

foo=$(find . -type f -mtime -100 -daystart -printf '"%f"\n') 

將存儲的find與在可變foo引述路徑名的結果。

echo ${foo}不會顯示換行符,而echo "${foo}"會。

+0

這對我有用'-printf'\「%f \」'',我現在可以擺脫管道 – Jessica