2010-11-04 120 views
6

我嘗試使用*作爲文件名一次性用sed替換很多文件。但它也試圖處理目錄,並給出錯誤並終止。有沒有簡單的方法來克服這一點?sed排除目錄

回答

9

我不知道究竟如何你使用sed在這裏,但正常的方式來處理UNIX只有常規文件find命令,類似:

find . -type f -exec sed 's/Hello/Goodbye/g' {} ';' 

類型限制你到普通文件,而不是目錄或FIFO或任何其他類型的文件系統魔術。

如果您在系統上運行man find,則會看到許多其他可供選擇的選項。

+0

我對linux/unix shell命令仍然很陌生,爲什麼當我運行它時,它會在很多文件的內容中屏蔽我的屏幕,但不會改變任何東西? – HumbleWebDev 2017-08-10 15:33:57

+0

@TheUnholy,這是正確的。這個答案的目的是展示如何使用'find'來處理文件而不是目錄。 find命令的'有效載荷'(在這種情況下是一個簡單的'sed'命令)可以修改以適應你的需要。 – paxdiablo 2017-08-10 20:57:36