我有一个输入文件,内容如下:
MB1 00134141
MB1 12415085
MB1 13253590
MB1 10598105
MB1 01141484
...
...
MB1 10598105
我希望将5行合并为一行。 我希望我的bash脚本能够处理bash脚本,生成以下输出 -
MB1 00134141 MB1 12415085 MB1 13253590 MB1 10598105 MB1 01141484
...
...
...
我已经写了下面的脚本,它能运行,但对于23051行的文件来说速度较慢。 我能否编写更好的代码以使其更快?
#!/bin/bash
file=timing.csv
x=0
while [ $x -lt $(cat $file | wc -l) ]
do
line=`head -n $x $file | tail -n 1`
echo -n $line " "
let "remainder = $x % 5"
if [ "$remainder" -eq 0 ]
then
echo ""
fi
let x=x+1
done
exit 0
我尝试执行以下命令,但它弄乱了一些数字。
cat timing_deleted.csv | pr -at5
cat $file | wc -l
可能会导致速度变慢,因此最好在循环之前保存该值。 - chepnerpr -at5 timing_deleted.csv
没有起作用... 当我尝试时,它运行得非常好,而且速度很快... 是文件具有 DOS 样式的行结尾或其他原因吗? - Sundeep