2014-04-09 33 views
0

我想將每個文件的目錄中的所有文本文件分成兩半。我嘗試了下面的代碼,但它不起作用。將文本文件分成兩半等分

d=2 
for file in /home/user1/Documents/files/*.txt; do 

l=$(wc -l < "$file") #was l= wc $file | awk {'print $1'} 

echo $l 

sp=$((l/d)) #was sp = $((l/d)) 

echo $sp 

split -l $sp $file $file. 

done 
+1

就行刪除空間,您分配 「分裂」。也。考慮將變量'split'重命名爲'lines',以免它與命令'split'混淆。 –

+1

另外,請考慮使用奇數行的文件,以及當您除以2時會發生什麼情況 - 您可能需要添加1以確保您不會得到3個「半部」:-) –

+0

更改爲sp分隔但該部門不工作。 – chris

回答

1

此行

l= wc $file | awk {'print $1'} 

應該

l=$(wc -l < "$file") 
+3

不,它不應該在等號的任何一邊留有空格,它會更好,因爲'l = $(wc -l <「$ file」)' –

+0

謝謝,已編輯,我忘了-l – Mansuro

+1

awk也不需要太...因爲'wc'不會打印文件名,或者如果您像我建議的那樣調用它。 –