清理單個檔案,可以這樣:echo > mylog.log
但是,如果我要清理一堆檔案,比如在/logs目錄下面的所有以.log結尾的檔案的內容,而不刪除檔案,該如何操作呢?
我一開始的語句是這樣的:
find /logs -name "*.log" -exec echo > {} \;
但是,執行的結果是新建了乙個名為「{}」的檔案,並沒有執行清理檔案內容的操作。
我詢問了大神之後,我的語句是這樣的:
for i in `find . -name "*.log"`; do cat /dev/null >$i; done
上面語句要在當前目錄執行,也就是,要跳轉到/logs下面執行此語句。
這條語句還可以是:for i in `find . -name "*.log"`; do echo >$i; done
但是用echo >執行的清理檔案並非完全為空的,而是有4k大小,而用cat /dev/null >清理的檔案內容大小完全為0。
Linux批量替換檔案內容
問題描述 現在需要將rack1目錄下 send檔案中的 ip 替換成 localip 10.0.0.1 n ip 剛才那個批量文字內容替換,只能替換記憶體中的內容,並不會替換文字中的內容,要替換檔案中的內容需要乙個乙個檔案去重定向,比較麻煩,本人比較懶,於是找到了一種更好的辦法 找到批量替換檔案內容...
Linux 下批量替換檔案內容
通常在網路上可以找到的方法是 sed i s oldstring newstring g grep oldstring rl path 但是其中有太多的限制,比如 無法篩選哪些檔案是你不想要的,你只能替換所有grep出來的檔案,我在專案裡遇到的一種情況是,這樣的替換會同時影響到.svn檔案,導致up...
linux下批量替換檔案內容
1 網路上現成的資料 格式 sed i s 查詢字段 替換字段 g grep 查詢字段 rl 路徑 linux sed 批量替換多個檔案中的字串 sed i s oldstring newstring g grep oldstring rl yourdir 例如 替換 home下所有檔案中的www....