我有這個命令來連接匹配模式的文件,但我想刪除它們,並且我想防止剛剛創建的文件應該被刪除(而不是連接)的情況,連接文件並刪除源文件
示例文件名:
start-2014-03-25-08-08.log
scheduled-2014-03-19-13-03.log
scheduled-2014-03-19-14-58.log
使用
ls -1 | sed -r "s/(.*)-[0-9]{4}(-[0-9]{2})+/cat \1* >> \1$(date +"-%Y-%m-%d-%H-%M")/" | uniq | cat
輸出命令是:
cat start* >> start-2014-03-26-12-26.log
cat scheduled* >> scheduled-2014-03-26-12-26.log
但我確實想刪除文件一旦被追加。由於文件很大,因此可能會延遲一段時間,同時附加一個新的「保存模式」文件,我不想刪除該文件。
什麼是正確的方法?
更新
我現在都沒有了。
rm -f temp.files;ls -1 *.log > temp.files; cat temp.files | sed -r "s/(.*)-[0-9]{4}(-[0-9]{2})+\.log/cat \1* >> \1$(date +"-%Y-%m-%d-%H-%M").log/" | uniq | sh; xargs rm -rf < temp.files; rm -f temp.files
我認爲這是最好創建存儲文件的列表中的臨時文件(或VAR或其他)受到影響,然後與它的工作,既爲'cat'和'rm'。 – fedorqui
你正試圖附加到一個文件名,該文件名將與你指定的'glob'匹配! (這會導致輸出文件附加到自身。) – devnull
@devnull請參閱我的更新 – Pentium10