确定文本文件中的数字位数

确定文本文件中的数字位数

我有一个如下的数据文件:

 15 01 01 00 00  0.0000000  0 22E19R13R12G15G26G24G21E20R19G13G18G29
 15 01 01 01 00 30.0000000  0 22E19R13R12G15G26G24G21E20R19G13G18G29
 15 01 01 02 01  0.0000000  0 22E19R13R12G15G26G24G21E20R19G13G18G29
 15 01 01 03 01 30.0000000  0 22E19R13R12G15G26G24G21E20R19G13G18G29

我需要计算第一行和第四列的值的位数,然后我需要将该位数确定为变量,如下所示:

第一行第四列:00

digit_number=2

答案1

如果你不需要实际检查该值是否为数字,你可以简单地检查长度第四届场地从 1 日开始记录

awk 'FNR == 1 {print length($4); exit}' file

分配给 shell 变量:

digit_number=$(awk 'FNR == 1 {print length($4); exit}' file)

如果需要计算字段中有多少位数字,那么你可以修改 awk 命令以

awk 'FNR == 1 {print gsub(/[0-9]/,"",$4); exit}' file

请注意,将返回忽略字段中任何非数字字符的gsub十进制数字计数。[0-9]

答案2

digit_number=$(head -1 {the file} | cut -d ' ' -f 4 | tr -d '\n' | wc -c)

在哪里:

  • head -1 {the file}打印文件的第一行
  • cut -d ' ' -f 4取第四个空格分隔的字段
  • tr -d '\n'删除尾随的 lf
  • wc -c计算结果中的字节数

相关内容