【问题标题】:how to write a shell script for printing values in csv file if they are in specific range?如果它们在特定范围内,如何编写用于在 csv 文件中打印值的 shell 脚本?
【发布时间】:2022-11-02 13:43:52
【问题描述】:

假设我们有一个包含时间和温度读数的 csv 文件,如果读数不在 30 到 35 范围内,我们必须打印特定的时间和温度以及我们打印的总行数减去标题和问题值。

而 IFS="," 读取 -r column1 column2 做 如果 [ "${Temp}" > 35 ];然后 回声“时间:$column1”“温度:$column2” 菲 完成 < <(tail -n +2 parse22.csv)

打印整个文件。我想要不在 30 到 35 范围内的时间和温度、记录总数和打印的记录数

【问题讨论】:

  • 请单击edit 并添加几行CSV 示例。有什么理由不使用awk
  • if [ "${Temp}" &gt; 35 ] 执行命令 [ "${Temp}" ] 并将输出重定向到文件 35。&gt; 是重定向,而不是大于运算符。
  • 请点击edit 并用鼠标选择您的代码。然后点击旁边格式工具栏中的{}大胆的斜体将其格式化为代码。谢谢你。

标签: shell


【解决方案1】:

#保持给定条件下的条目计数 计数=0

#使用while循环通过IFS和#read命令将csv文件分成列

而 IFS=,读取 -r 时间温度 做

#通过条件 如果 [ $Temp -lt 30 ] || [$临时-gt 35]; 然后

回声“$Time $Temp”
#打印指定值

((++计数))
#添加坏的入口值来计算 菲 完成 < <(tail -n +2 data1.csv) #忽略头和位置的csv文件

echo ">> 我们发现 ${count} 个错误条目" #打印值

【讨论】:

  • 您的答案格式不正确,没有注释,对未来的读者没有太大帮助。请点击edit 并尝试改进它。谢谢你。
猜你喜欢
  • 2021-07-20
  • 2023-02-26
  • 2021-06-26
  • 1970-01-01
  • 2022-06-15
  • 2012-01-27
  • 1970-01-01
  • 2018-09-25
  • 2022-01-08
相关资源
最近更新 更多