我需要做的是将一个长文本文件剪切成具有相同行数的10个和平文件。因此我编写了以下脚本。
#!/usr/bin/bash
filename="$1"
count=0
file=0
br=$(wc -l $filename | awk '{print $1}')
let br = $br/10
while read -r line
do
let count = count + 1
name="$line"
echo $name >> file$file.csv
if [ $count = $br ];then
let count=0
let file+=1
fi
done < "$filename"
脚本产生以下错误,我不明白
cut.sh: line 9: let: =: syntax error: operand expected (error token is "=")
我已阅读similar topic但仍无法找到解决方案。 欢迎任何想法。感谢
答案 0 :(得分:3)
bash
变量赋值不能在=
周围有空格。删除=
周围的空格:
let br=${br}/10
对所有这些案件都这样做。
答案 1 :(得分:2)
bash中的数学计算需要用双括号括起来,所以:
let count=$(( $count + 1 ))