поиск строки с помощью awk

[1184979] Если ваша фактическая цель - переместить кучу файлов, основываясь на времени модификации, а версия вашей системы [1185435] находит[1185436] поддержку типа тестов [1185437] -newerXY[1185438], вы можете сделать что-то вроде
  • , где [1185439]$lasttime[1185440] - это время модификации файла, которое вы сохранили ранее, в секундах с тех пор, как наступила эпоха (например, [1185439] $lasttime[1185440]). например, полученное из [1185441]stat -c %Y вашего файла[1185442]). Также можно использовать [1185443] find -newer somefile[1185444] или [1185445] find -newermm somefile[1185446], чтобы напрямую сравнить время модификации со временем файла ссылки, вместо того, чтобы сохранять метку времени файла ссылки в переменной.

    Чтобы ограничить выбор текущим каталогом (исключить подкаталоги), можно добавить [1185447]-maxdepth 1[1185448] к команде [1185449]find[1185450].[1184986].

  • 2
    03.04.2015, 16:49
    1 ответ

    Вы можете попробовать с awk:

    awk 'FNR == NR { v[$1] = 0; next; } { v[$4]++; } END { for (elem in v) { print elem, v[elem]; } }' File-1 File-2 >outfile
    

    , поэтому результат будет:

    201503301616|9b8791b3-f860-409f-aad0-24debf834c1b|11.233.18.29.677220869928387637969 1
    201503301616|9b8791b3-f860-409f-aad0-24debf834c1b|12.233.18.29.677220869928387637969 2
    201503301616|9b8791b3-f860-409f-aad0-24debf834c1b|10.233.18.29.677220869928387637969 2
    

    , но снова я не знаю, почему вам нужны 2 файла. Вы можете сделать это с файлом-2:

    awk '{ v[$4]++; } END { for (elem in v) { print elem, v[elem]; } }' File-2 >outfile
    

    результат будет таким же.

    1
    27.01.2020, 22:21

    Теги

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