Два -передают команду Awk, довольно грязно:
awk -F, 'FNR == NR {diff[NR] = $2-$3;
if (!($1 in minline) || diff[NR] < diff[minline[$1]]) {
minline[$1]=NR}; next}
FNR == 1 {for (a in minline) {p[minline[a]]}}
FNR in p' file.csv file.csv
Для интереса, вот как это сделать с помощью SQL (, сделанного в Postgres, если быть точным):
vagrant=# \d quick
Table "pg_temp_2.quick"
Column | Type | Modifiers
--------+---------+-----------
f1 | text |
f2 | integer |
f3 | integer |
vagrant=# select * from quick;
f1 | f2 | f3
----+----+----
c1 | 5 | 2
c1 | 5 | 3
c1 | 5 | 1
c2 | 8 | 3
c2 | 8 | 4
(5 rows)
vagrant=# select f1, f2, f3 from (select *, rank() over (partition by f1 order by f2 - f3) from quick) as x where rank = 1;
f1 | f2 | f3
----+----+----
c1 | 5 | 3
c2 | 8 | 4
(2 rows)
vagrant=#
$ export CLOUD_PASSWORD='Pass4Aa$ditya'
$ printf '%s\n' "$CLOUD_PASSWORD"
Pass4Aa$ditya
$ export CLOUD_PASSWORD="Pass4Aa\$ditya"
$ printf '%s\n' "$CLOUD_PASSWORD"
Pass4Aa$ditya
одинарные кавычки или экранирование обратной косой чертой:)
Используйте одинарные кавычки, чтобы присвоить значение переменной в файле .bash_profile
.
Добавить следующую строку в.bash_profile
-
export CLOUD_PASSWORD='Pass4Aa$ditya'
Проверьте изменения-
$ source.bash_profile
$ printf '%s\n' "$CLOUD_PASSWORD"
Pass4Aa$ditya