2014-04-09 35 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'不会打印文件名,或者如果您像我建议的那样调用它。 –