這是問題。我有一個Ubuntu 14.04服務器上有超過100,000K文件的目錄。我需要在後臺處理這些文件,因此我編寫了一個shell腳本,將這些文件轉換爲較大的文件,然後刪除該文件。然而,這個問題的起因在於它也是處理腳本和輸出文件的貓。有任何想法嗎?將文件名與字符串中的文件名進行比較的Shell腳本問題
#!/bin/sh
c=0
#loop through 1000 results at 1 time
d=1000
while [ $c -lt $d ]
do
filename=$(`ls | head -n 1`)
#echo $filename
if [ $filename == "process.sh" ]
then
break
fi
if [ $filename == "file.txt" ]
then
break
fi
cat `ls | head -n 1` >> file.txt
rm `ls | head -n 1`
#echo $c
c=`expr $c + 1`
done
您處理完成後,您可以刪除有問題的行:'sed的-i.bak「/模式匹配/ d」/file.txt' –
的問題是,正在處理的文件號碼不固定。總是有批量添加的文件。我的意思是有時候有10萬甚至更少。我想我可以首先得到一些文件,從循環中得到-1,因爲其他文件都有數字名稱。不知道,我需要刷一下我對shell腳本的瞭解。 –
除非我錯過了某些東西,'ls | head -n 1'將始終返回第一個文件。我沒有看到這個腳本通過文件進行。也不應該把'filename = $('ls | head -n 1')這行''filename = $(ls | head -n 1)'?當做簡單的數學運算時,我更喜歡格式'c = $((c + 1))'。 – Deathgrip