【发布时间】:2019-09-26 05:33:12
【问题描述】:
我需要找到一种方法来计算文件或标准输入中的列,而不使用除了 pure bash 之外的任何东西。到目前为止我所拥有的......
input="${1:-/dev/stdin}"
rows=0
while read -r myLine
do
a=($myLine)
cols=(${#a[*]})
rows=`expr $rows + 1`
done < $input
echo -e "$rows $cols"
我正在计算行数和列数。现在,我的列数仅适用于文件,不适用于标准输入。
有什么建议吗?
我正在运行以下命令
echo -e "1\t2\n3\t4" > m1, ./matrix m1
echo -e "1\t2\n3\t4" | matrix
【问题讨论】:
-
只需使用
wc -lw < $input即可在一次读取操作中获取您需要的所有统计信息。字数除以行数就是列数。 -
纯 bash 是什么意思?您的代码中有
head和wc -
我不能使用除了 bash shell 脚本之外的任何东西,所以不能使用 awk、sed、tcl、bc、perl 和 python 语言。
-
如果当前年份以 2 开头,您真的不需要
expr。Bash 具有出色的内置算法。
标签: bash