Почему эта бомба вилки bash не работает на моей виртуальной машине RHEL?

Используйте параметры контекстного вывода для grep . Если вам нужны три строки после каждого появления времени в (скажем) всех файлах в каталоге:

grep -A3 'time' /path/to/files/*

grep имеет три контекстных параметра - A для строк после матч; B для строк до совпадения и C для полного контекста (строки до и после совпадения). Если вы хотите дополнительно разделить вывод grep и знаете, что каждое совпадение даст четыре строки вывода, вы можете направить вывод в split -l4 .

1
10.06.2015, 17:39
1 ответ

Поля не совпадают (по крайней мере, в примере) Вызываемый файл «full csv» имеет поле «PSEUDO BITHDAY», тогда как второй файл имеет поле «PSEUDO BI R THDAY». Во втором файле имеется дополнительный R.

Опция -t хорошо работает во всех выпусках соединения.

ПРАВКА: Ваш пример работает для меня

    bash-4.1$ join -t, a b
    NAIN GENIEUR 01/01/1917,C,D
    bash-4.1$ join --version
    join (GNU coreutils) 8.4
    Copyright (C) 2010 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.

    Written by Mike Haertel.
    bash-4.1$
-121--289677-

Ваша команда должна работать. Однако, по крайней мере в приведенном примере, в конце строки в file2 имеется космос. Это важно, это принимается как часть поля. Как вы видите, при удалении файла происходит ожидаемое соединение файлов:

$ join -t"," -j 1 file1 file2  ## no output
$ sed -i 's/ $//' file2        ## remove the trailing space
$ join -t"," -j 1 file1 file2  ## now it works
NAIN GENIEUR 01/01/1917,C,D
-121--289678-

Более современные OSES защищают себя от такого рода неправильного использования по умолчанию, обычно путем установки пользовательских ограничений. Вероятно, поэтому система по-прежнему реагирует - она позволяет выделять память только до определенного объема, что значительно меньше, чем у машины.

2
29.04.2021, 00:27

Теги

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