如何将从文件中读取的数字从 str 转换为 int?

米歇尔·帕迪尼

我使用 bash,我必须读取一个包含多行的文件

每行由一个数字组成。然后,对于每一行(数字),我必须检查值是否 > 80。

这是我的问题,无论我尝试什么,我总是得到:

>integer expression expected

在 if 条件之后。那是因为我用来放置行值的变量是一个字符串。

这是我的原始文件

[root@michelep_centos2 ~]# cat temp1

0

0

0

98

0

0

79

0

81

在 bash 脚本中,我有

##!/bin/bash

file=/root/temp1


while IFS= read -r line

do

        if [ 'expr $line /1' -gt 80 ]

        then echo "hit>80"

        fi

done <"$file"

这里 expr 返回错误,因为 $line 是一个字符串。我试过使用另一个变量

val=$(($line + 0))

if [ $val -gt 80 ]

这里的 if 条件返回“预期的整数表达式”

我也用过回声

val=$(echo "$((line /1))") 

if [ $val -gt 80 ]

我得到

语法错误:无效的算术运算符(错误标记是 ...

来自 echo 命令,当然还有 if 条件返回

预期的整数表达式

普....

第一个动作: dos2unix -f inputfile

第二个动作:

从输入文件可以看出它包含空行,这将导致if比较失败。您可以在检查之上进行额外检查,-gt 80以确保在传递变量之前$line使用它不为空,if [ ! -z $line ]或者更好的是您可以进行检查以确保该行是一个整数,或者可能同时使用 AND。

例子:

while read line;
do
  if [[ $line =~ ^[0-9]+$ ]];then 
      if [ $line -gt 80 ];then
          echo "$line is greater then 80"
      fi
  fi
done <input_file

或者,如果您不想放空 check( [ ! -z $line ]) ,

此外,这可以使用其他工具来完成,例如awk在一行中,但这可能符合也可能不符合您的要求。

awk 'NF && $0>80{print $0 ,"is greater then 80"}' inputfile

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将str转换为int?

来自分类Dev

如何将str转换为int

来自分类Dev

将字典中的 str 项转换为 int 并将 datetime.datetime 变量转换为 int

来自分类Dev

将int向量转换为str向量

来自分类Dev

将int转换为str用于循环

来自分类Dev

Python,如果转换为str / int

来自分类Dev

将列表的元素从 str 转换为 int

来自分类Dev

如何在读取之前清除字符串并将 str 转换为 int

来自分类Dev

读取二进制文件并使用Python 3通过Modbus RTU发送(如何将“ str”转换为“ int”)

来自分类Dev

如何使用json.dumps()将所有int转换为嵌套字典中的str?

来自分类Dev

将类型str(带有数字和单词)列转换为int pandas

来自分类Dev

将Str(十六进制int)转换为Dec Int

来自分类Dev

无法在python 3.4.3中将'int'对象隐式转换为str

来自分类Dev

在嵌套字典中将python中的字典值从str转换为int

来自分类Dev

在__getitem__ Python 2.7中将int转换为str

来自分类Dev

如何将用户的字符串输入(例如“ int”或“ float”)转换为str和float类型?

来自分类Dev

如何将将单词和数字存储为str的列表的值转换为int以进行进一步处理

来自分类Dev

将str转换为int的简单方法?C ++

来自分类Dev

将Str列表转换为Int列表(Python)

来自分类Dev

TypeError:无法将int隐式转换为str

来自分类Dev

在Python中将列表[str]转换为列表[int]

来自分类Dev

将带单双引号的str转换为int

来自分类Dev

使用str()在Python中转换int()中的数字

来自分类Dev

将使用'str()'的变量转换为数字

来自分类Dev

从文件读取然后从from转换为int?

来自分类Dev

如何快速将Int转换为int?

来自分类Dev

如何将List <KeyValuePair <int,int >>转换为int [] []?

来自分类Dev

如何将interface {}转换为[] int?

来自分类Dev

如何将字节转换为int?

Related 相关文章

  1. 1

    如何将str转换为int?

  2. 2

    如何将str转换为int

  3. 3

    将字典中的 str 项转换为 int 并将 datetime.datetime 变量转换为 int

  4. 4

    将int向量转换为str向量

  5. 5

    将int转换为str用于循环

  6. 6

    Python,如果转换为str / int

  7. 7

    将列表的元素从 str 转换为 int

  8. 8

    如何在读取之前清除字符串并将 str 转换为 int

  9. 9

    读取二进制文件并使用Python 3通过Modbus RTU发送(如何将“ str”转换为“ int”)

  10. 10

    如何使用json.dumps()将所有int转换为嵌套字典中的str?

  11. 11

    将类型str(带有数字和单词)列转换为int pandas

  12. 12

    将Str(十六进制int)转换为Dec Int

  13. 13

    无法在python 3.4.3中将'int'对象隐式转换为str

  14. 14

    在嵌套字典中将python中的字典值从str转换为int

  15. 15

    在__getitem__ Python 2.7中将int转换为str

  16. 16

    如何将用户的字符串输入(例如“ int”或“ float”)转换为str和float类型?

  17. 17

    如何将将单词和数字存储为str的列表的值转换为int以进行进一步处理

  18. 18

    将str转换为int的简单方法?C ++

  19. 19

    将Str列表转换为Int列表(Python)

  20. 20

    TypeError:无法将int隐式转换为str

  21. 21

    在Python中将列表[str]转换为列表[int]

  22. 22

    将带单双引号的str转换为int

  23. 23

    使用str()在Python中转换int()中的数字

  24. 24

    将使用'str()'的变量转换为数字

  25. 25

    从文件读取然后从from转换为int?

  26. 26

    如何快速将Int转换为int?

  27. 27

    如何将List <KeyValuePair <int,int >>转换为int [] []?

  28. 28

    如何将interface {}转换为[] int?

  29. 29

    如何将字节转换为int?

热门标签

归档