我一直在研究Node.js中的流和转换。我写了一个可以搜索和替换的变换。
如果我有一个类似的输入文件
#!/bin/bash
declare -A matrix
#terms
num_rows=3
#subjects
read -p "Enter the number of subects:" num_columns
declare -A subj_array
for ((i=1;i<=num_columns;i++)) do
read -p "Enter the name of subject ${i}:" subj_name
subj_array[$i+1]=${subj_name}
for ((j=1;j<=num_rows;j++)) do
if [[ $j == "1" ]] ; then
read -p "Enter prelim marks for subject ${subj_name}: " jj
elif [[ $j == "2" ]]; then
read -p "Enter midterm marks for subject ${subj_name}: " jj
else
read -p "Enter final marks for subject ${subj_name}: " jj
fi
matrix[$j,$i]=$jj
done
done
f1="%$((${#num_rows}+1))s"
f2=" %9s"
printf "$f1" ''
for ((i=1;i<=num_rows;i++)) do
printf "$f2" $i
done
echo
for ((j=1;j<=num_columns;j++)) do
printf "$f1" $j
for ((i=1;i<=num_rows;i++)) do
printf "$f2" ${matrix[$i,$j]}
done
echo
done
for ((i = 1; i <= $num_columns; i++)); do
sum_per_subj=0
for ((j = 1; j <= $num_rows; j++)); do
sum_per_subj=$(echo $sum_per_subj+${matrix[$j,$i]} | bc)
done
echo "Subject ${subj_array[$i+1]} Average is":
printf '%.4f\n' $(echo $sum_per_subj / $num_columns | bc -l)
done
overall_sum=0;
for ((i = 1; i <= $num_rows; i++)); do
sum_per_term=0
for ((j = 1; j <= $num_columns; j++)); do
sum_per_term=$(echo $sum_per_term+${matrix[$i,$j]} | bc)
done
overall_sum=$(echo $overall_sum+${sum_per_term} | bc)
if [[ $i == "1" ]] ; then
echo "Term prelim Average is":
elif [[ $i == 2 ]]; then
echo "Term mideterm Average is":
else
echo "Term final Average is":
fi
printf '%.4f\n' $(echo $sum_per_term / $num_rows | bc -l)
done
echo "overall Average is":
printf '%.4f\n' $(echo $overall_sum / $num_rows | bc -l)
我想找到所有的“名称”并将其替换为“名字”
name: bob
name: mike
我必须对每个字符进行测试。即First Name: bob
First Name: mike
我想使用只有1个字符的块来完成这项工作,因为无论如何它都必须如此。为了测试这一点,我创建了类似"n" === "name"[0]
的可读流,这意味着在Fs.createReadStream(file, {highwatermark:1});
函数中一次读取了一个字符。之所以能正常工作,是因为如果我检测到比赛开始,就会将这些块构建到缓冲区中,直到找到完全比赛为止。然后我继续前进。
现在我想在我的项目中添加缩小。我的问题是-缩小程序(css / html / js)可以在同一级别上工作吗,还是必须先串联所有块?如果是这样,是否会使流的缩小完全没有意义?流的关键是您获得了大块数据,但是为了最小化某些内容,您是否不需要完整的整个文件?除了像_transform(chunk)
一样使用pipe
之外,基本上看起来很酷还会有其他优势吗?