每行末尾都有一个换行符的。只删除最后一个换行符,就意味着将文件的倒数第二行与最后一行合并成一行。我这个题意理解得正确吗?如果是这样:line=`sed -n '$=' file.txt` #计算文件行数let line-=1 #得到倒数第二行的行号sed -i $line'{N;s/\n//}' file.txt #去除倒数第二行后的换行符计算文件行数用wc也可以:wc -l file.txt | cut -d' ' -f1