我有一个如下的数据文件:
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'
删除尾随的 lfwc -c
计算结果中的字节数