Bash

bash - 用新行替換空格

  • October 22, 2021

如何在輸入上用新行替換空格,例如:

/path/to/file /path/to/file2 /path/to/file3 /path/to/file4 /path/to/file5ETC…

要獲得以下內容:

/path/to/file
/path/to/file2
/path/to/file3
/path/to/file4
/path/to/file5

筆記

我發布這個問題是為了幫助其他使用者,在我開始輸入這個問題之前,在 UNIX SE 上找到有用的答案並不容易。之後我發現了以下內容:

相關問題

如何查找並替換為新行?

使用tr命令

echo "/path/to/file /path/to/file2 /path/to/file3 /path/to/file4 /path/to/file5"\
| tr " " "\n"

http://www.unix.com/shell-programming-scripting/67831-replace-space-new-line.html上找到

在這種情況下,我會使用 printf:

printf '%s\n' /path/to/file /path/to/file2 /path/to/file3 /path/to/file4 /path/to/file5

如果其中一個路徑中有空格,您可以引用該文件路徑以防止它在空格上被拆分:

printf '%s\n' /path/to/file '/path/to/file with spaces' /path/to/another/file

正如現有答案所涵蓋的那樣,通常轉換文本tr是您最好的選擇。

引用自:https://unix.stackexchange.com/questions/105569