linxux统计文件每行第一个数字,并按照指定行数累加:
时间: 2024-03-10 13:46:38 浏览: 17
可以使用awk和bash脚本来实现这个功能。
首先,使用awk命令来提取每行的第一个数字,并将结果保存到一个临时文件中:
```
awk '{ print $1 }' file.txt > temp.txt
```
接下来,使用bash脚本来按照指定行数累加这些数字。例如,如果要按照每5行累加一次,可以使用以下脚本:
```
sum=0
count=0
while read line; do
sum=$((sum + line))
count=$((count + 1))
if [ $count -eq 5 ]; then
echo $sum
sum=0
count=0
fi
done < temp.txt
if [ $count -ne 0 ]; then
echo $sum
fi
```
这个脚本使用一个while循环来读取临时文件中的数字,并在每5行累加一次。最后,如果行数不能被5整除,需要再输出一次累加结果。
完整的代码如下:
```
#!/bin/bash
awk '{ print $1 }' file.txt > temp.txt
sum=0
count=0
while read line; do
sum=$((sum + line))
count=$((count + 1))
if [ $count -eq 5 ]; then
echo $sum
sum=0
count=0
fi
done < temp.txt
if [ $count -ne 0 ]; then
echo $sum
fi
rm temp.txt
```