用 bash 计算列数

  • 本文关键字:计算 bash bash
  • 更新时间 :
  • 英文 :


我需要找到一种方法来计算文件或 stdin 中的列,而无需使用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 "1t2n3t4" > m1, ./matrix m1
echo -e "1t2n3t4" | matrix

我会建议awk完成这个任务,但是如果你需要bash,你可以使用数组:

let c=0
while read -r myLine; do 
a=($myLine) 
echo "Line $((++c)) has ${#a[*]} columns"
done < file

数组a填充由read函数读取的行的内容。 列数是数组a的长度。

请注意,此脚本假定输入字段分隔符IFS未设置(因此,对于read命令,默认为<space><tab><newline>(。

最新更新