在檔案路徑之間新增空格

在檔案路徑之間新增空格

我有一個資料夾列表,在每個資料夾中都有一個檔案“file.txt”,該檔案在所有資料夾中都具有相同的名稱。我想從所有資料夾中收集該文件的路徑並將其保存在文字檔案中。為此,我在父資料夾中運行了以下命令:

find $PWD -type f -name "file.txt" > paths.txt

該命令將所有資料夾中到該檔案的所有路徑儲存在檔案「path.txt」中,如下所示:

a/b/c/1/file.txt
a/b/c/2/file.txt
a/b/c/3/file.txt
a/b/c/4/file.txt
a/b/c/5/file.txt
a/b/c/6/file.txt
a/b/c/7/file.txt
.
.
.
.

如何在檔案「path.txt」中的行之間建立空格,以便它可以顯示如下:

/a/b/c/1/file.txt /a/b/c/2/file.txt /a/b/c/3/file.txt /a/b/c/4/file.txt /a/b/c/5/file.txt /a/b/c/6/file.txt /a/b/c/7/file.txt ...

答案1

另一種方式,假設 GNU find(1),只是為了好玩:

find $PWD -type f -name "file.txt" -printf '%p '

答案2

您可以使用“tr”命令將 LF 字元替換為空格

tr '\012' ' ' < path.txt

這可以是原始命令的一部分:

find $PWD -type f -name "file.txt" | tr '\012' ' ' > paths.txt

答案3

一種簡單的方法是將find輸出通過管道傳輸xargs(當沒有給出顯式命令時,其預設操作是回顯其參數)

find $PWD -type f -name "file.txt" | xargs > paths.txt

與簡單地將所有換行符號替換為空格不同,這會保留最終的換行符。

答案4

paste您也可以使用,

find . -type f -name "path.txt" -exec paste -d' ' -s {} \; > path.txt

相關內容