Подмножество содержание файла на основе значения в столбце

Попробовать hdparm -B 254 /dev/sda

Мой диск, кажется, игнорирует-S, управляет, но слушает команды-B.

4
29.04.2014, 20:13
3 ответа
[118271] Если заказ не важен, то два прохода [118754] сорта [118755] должны выполнить трюк. В первом проходе отсортируйте по полю 1, за которым следует обратная сортировка по числовой части поля 3 (начальная позиция 4). Модификатор [118756]-b[118757] заставляет игнорировать ведущие пробелы. Сортируйте это во вторую [118758] сортировку [118759], которая возвращает по одной записи на каждое уникальное значение в поле 1, но на этот раз укажите модификатор стабильного сорта([118760]-s[118761]), чтобы запись с наибольшим значением в поле 3 (которое пузырилось до вершины для каждого значения в поле 1 любезно предоставлено предыдущим сортом) была возвращена[12200]
4
27.01.2020, 20:52
[117020] С [117606]awk[117607]:[12189] Это работает путем создания массива a из значений V, проиндексированных первым столбцом. Для каждой строки сравнивается значение V с текущим значением массива для этого индекса, если оно больше, то обновляется значение в массиве, а вся строка сохраняется во втором массиве b. После обработки всего файла выводится все в b.[12190]Пример вывода: [12191]Если упорядочивание важно, то можно подключиться к [117608]сортировке[117609] (например, сортировка по V номеру):[12192]Дает:[12193]Рабочий пример: [117610]http://ideone.com/WPvRzh[12194]
2
27.01.2020, 20:52

Вот решение в perl :

$ perl -F'\s+|=' -anle '
    $h{$F[0]} = [$F[-1],$_] if $F[-1] > $h{$F[0]}->[0];
    END {print $h{$_}->[1] for keys %h}' file
grapes  V$SP1_Q6_rc V=0.884
apple   V$NFY_Q6_rc V=0.741
orange  V$SP4_Q5    V=0.747

Обновление

Предположим, у вас есть два результата после запуска двух однострочных.

файл1 :

apple   V$NFY_Q6_rc V=0.741
orange  V$SP4_Q5    V=0.747
grapes  V$SP1_Q6_rc V=0.884

файл2 :

X       X in file?  number of times it occurs
NFA            0                            0
SP4            1                            2
NFATC1         0                            0

Вы можете попробовать следующее:

$ awk -F'[ =]+' 'FNR==NR{a[$2]=$NF;next}
            FNR==1{print $0"\tV value";next}
            {for(i in a){
                if(index(i,$1)){
                    print $0"\t"a[i];
                    next;
                }
            }
            print;
        }' file1 file2
X       X in file?  number of times it occurs   V value
NFA            0                            0
SP4            1                            2   0.747
NFATC1         0                            0
0
27.01.2020, 20:52

Теги

Похожие вопросы