Я не хочу печатать повторяющиеся строки на основе столбцов 6 и 7 - PullRequest
0 голосов
/ 25 апреля 2019

Я не хочу печатать повторяющиеся строки на основе столбцов 6 и 7. sort -u, похоже, не помогает

кошка / тмп / тестирование: -

-rwxrwxr-x. 1 root root  52662693 Feb 27 13:11 /home/something/bin/proxy_exec
-rwxrwxr-x. 1 root root  27441394 Feb 27 13:12 /home/something/bin/keychain_exec
-rwxrwxr-x. 1 root root  45570820 Feb 27 13:11 /home/something/bin/wallnut_exec
-rwxrwxr-x. 1 root root  10942993 Feb 27 13:12 /home/something/bin/log_exec
-rwxrwxr-x. 1 root root 137922408 Apr 16 03:43 /home/something/bin/android_exec

Когда я пытаюсь cat /tmp/testing | sort -u -k 6,6 -k 7,7, я получаю: -

-rwxrwxr-x. 1 root root 137922408 Apr 16 03:43 /home/something/bin/android_exec
-rwxrwxr-x. 1 root root  52662693 Feb 27 13:11 /home/something/bin/proxy_exec

Требуемый вывод приведен ниже, так как это единственный файл, отличающийся от других по столбцу месяца и даты

-rwxrwxr-x. 1 root root 137922408 Apr 16 03:43 /home/something/bin/android_exec

Ответы [ 2 ]

0 голосов
/ 25 апреля 2019

[не] для печати повторяющихся строк на основе столбцов 6 и 7 с использованием awk, вы можете:

$ awk '
++seen[$6,$7]==1 {          # count seen instances
    keep[$6,$7]=$0          # keep first seen ones       
}
END {                       # in the end
    for(i in seen)
        if(seen[i]==1)      # the ones seen only once
            print keep[i]   # get printed
}' file                     # from file or pipe your ls to the awk

Вывод для данного ввода:

-rwxrwxr-x. 1 root root 137922408 Apr 16 03:43 /home/something/bin/android_exec

Примечание : все стандартные предупреждения о разборе ls вывод по-прежнему применяются.

0 голосов
/ 25 апреля 2019

попробовал на GNU SED

sed -E '/^\s*(\S+\s+){5}Feb\s+27/d' testing

попробовал на GNU AWK

awk 'NR==1{a=$6$7;next} a!=$6$7{print}' testing
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...