使用bash工具_0

时间:2018-12-07 09:10:01

标签: bash

在{A栏” https://pastebin.com/0FCgHiy4中有valvu.csv

我可以阅读,但不知道如何继续。

#!/bin/bash
one=2000
two=3000
high=10

while IFS=, read -r col1
do
echo "$col1"
done < values.csv

我的sed为's/,/ /g',我可以从2750,2.2941拆分为2750 2.2941

现在是我的问题。我从第一行中搜索$ one和$ tow之间最大的数字(例如2750,第二行中搜索最大的数字(例如2.2941)

结果将为valvu.csv 2290 18.4881。

我想在A列的同一行中以CSV格式编写,文件名是“ csv中的名称”,B列2290,A列18.4881

寻求帮助
问候

1 个答案:

答案 0 :(得分:0)

正如在这里已经提到的Guy一样,发布测试用例/样本输出总是很好的。

无论如何,如果您有任何疑问,则需要考虑变量$one$two之间的第一列的范围,从第二列中找到最大值,并以空格分隔的格式将第一列的值打印出来。然后,您可以使用以下AWK:

awk -F',' '($1>'${one}')&&($1<'${two}') {if ($2>max) {max=$2; x=$1;}} END {print(x " " max);}'

测试:

$ one=2000
$ two=3000
$ awk -F',' '($1>'${one}')&&($1<'${two}') {if ($2>max) {max=$2; x=$1;}} END {print(x " " max);}' valvu.csv > output
$ cat output
2290 18.4881