ошибка предоставления команды grep

Для одного пользователя можно сделать как это:

su -  -c '. ~/.profile; echo $PATH'

$PATH списка всего пользователя:

for user in $(cat /etc/passwd | awk -F: '{print $1}'); do
  su - $user -c '. ~/.profile; printf "%s\n" "$PATH"'
done

@Camil Staps

. ~/.profile таким образом прием, который я изучаю от своей любимой личности, Peteris Krumins. Он объяснил прием здесь. Возможно, более поздняя версия удара имела здание с опцией NON_INTERACTIVE_LOGIN_SHELLS.

5
13.04.2017, 15:37
3 ответа

Так как имена ваших генов всегда находятся во 2-ой колонке файла, вы можете использовать для этого [11676]awk[11677]:

$ stty intr ^C^J

То же самое, конденсированное:

stty sane < /dev/whatever
stty intr ^c < /dev/whatever

более конденсированное:

и по-настоящему минималистское (в ответ на @Awk):

6
27.01.2020, 20:33

Ваш файл2

содержит подстроку, которая

grep совпадает с одной из строк из файла1
  • .

    Пример

    • На приведенном выше снимке экрана видно, что текст выделен красным цветом с помощью
    • grep
    • . Кстати, вы можете также использовать функцию цветового выделения:
    • Но я хочу, чтобы совпадали только целые слова?
    • Если вы хотите, чтобы
    • grep
    • возвращал только совпадения, которые являются "целыми словами", вы можете включить переключатель
    • -w
    • . При этом будут возвращаться только те совпадения, которые являются "целыми словами" из
    • -файла1
    • .
    • Здесь я создал другой файл (
    • -файл1a), который действительно включает ген UNC79.
    • Здесь, когда я запускаю grep -wf -w ... с помощью команды 2 индексных файлов (file1 и file1a) можно увидеть, что мы не получаем совпадение с файлом file1 и совпадение с файлом file1a.
    • выдержка из grep man page
    • Этот трюк работает в ситуации @Ron'а, так как имена его генов граничат с несловными символами (=
      ) и заканчиваются на (
      ;). Иначе этот трюк вряд ли сработал бы.

      .
  • 7
    27.01.2020, 20:33

    @ terdon Вы можете сделать более простым

    awk 'NR==FNR{a[$1]; next}($2 в a)' file1 file2

    1. --edit---
    2. @terdon
    3. +1 если всегда он во 2-ом столбце, то хорошо, но все равно проблема в том, что после хранения индекса в массиве, который составляет [11723]a[$1][11724] при чтении file1, он просто проверяет [11725]$2 в a[11726] file1, это просто убивает некоторое время, вот пример получения неожиданного результата без [11727]следующего [11728], пожалуйста, не возражайте, я не говорю, что ваш ответ неверен, я просто пытаюсь показать вам, что он просто читает файл даже после того, как его работа уже закончилась, что хранит индекс в массиве [11729]a[11730].
    1
    27.01.2020, 20:33

    Теги

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