команды трубопроводов после трубопровода xargs

HP-UX ***** B.11.23 U ia64 **** Лицензия на неограниченное количество пользователей

find . -type d -name *log*|xargs ls -la 

дает мне имя каталога (те, которые содержат журнал в имени каталога), а затем все файлы в этом каталоге.

  • Как использовать команду чтения с вопросом и переменной alltogether?
  • Возможно ли избежать кавычек в кавычках эвакуации в кавычках эвакуации в кавычках эвакуации?
  • Запись в интерактивную подсказку
  • Подстановка на месте для строк, соответствующих некоторому шаблону в заданном наборе файлов
  • У нас больше истории для cd?
  • команда solaris + xargs для солярия
  • Каталоги /var/opt/SID/application_a/log/ , /var/opt/SID/application_b/log/ , /var/opt/SID/application_c/log/ и т. Д. Содержат файлы журналов.

    Я хочу, чтобы только две последние лог-файлы были перечислены командой ls, которую я обычно нахожу, используя ls -latr|tail -2 .

    Результат должен быть примерно таким.

     /var/opt/SID/application_a/log/ -rw-rw-rw- 1 user1 user1 59698 Jun 11 2013 log1 -rw-rw-rw- 1 user1 user1 59698 Jun 10 2013 log2 /var/opt/SID/application_b/log/ -rw-rw-rw- 1 user1 user1 59698 Jun 11 2013 log1 -rw-rw-rw- 1 user1 user1 59698 Jun 10 2013 log2 /var/opt/SID/application_c/log/ -rw-rw-rw- 1 user1 user1 59698 Jun 11 2013 log1 -rw-rw-rw- 1 user1 user1 59698 Jun 10 2013 log2 

    find . -type d -name *log*|xargs ls -la|tail -2 find . -type d -name *log*|xargs ls -la|tail -2 не дает мне вышеуказанного результата. Я получаю список последних двух файлов find . -type d -name *log*|xargs ls -la find . -type d -name *log*|xargs ls -la command.

    Могу ли я передавать команды после конвейерных xargs? Как еще я запрашиваю, чтобы получить результирующий список файлов в вышеуказанном формате?

     find . -type d -name *log*|xargs sh -c "ls -ltr|tail -10" 

    дает мне список из десяти имен каталогов внутри текущего каталога, который является / var / opt / SID, и это тоже не то, что я хочу.

  • stderr над ssh -t
  • В чем разница между запуском программы в качестве демона и разворачиванием ее в фоновом режиме с помощью «&»?
  • Переменная среды не расширена внутри аргумента командной строки
  • Действительно ли программы `if` и` then`
  • список графических процессов из терминала
  • Каковы существенные различия между различными раковинами?
  • 2 Solutions collect form web for “команды трубопроводов после трубопровода xargs”

    Вы почти там. В вашей последней команде вы можете использовать -I для правильной работы ls

      -I replace-str Replace occurrences of replace-str in the initial-arguments with names read from standard input. Also, unquoted blanks do not terminate input items; instead the separator is the newline character. Implies -x and -L 1. 

    Итак, с

      find . -type d -name "*log*" | xargs -I {} sh -c "echo {};ls -la {} | tail -2" 

    вы будете echo от найденного find, затем сделайте « ls |tail » на нем

    GNU Parallel упрощает такие задачи:

     find . -type d -name "*log*" | parallel --tag "ls -la {} | tail -2" 

    Если вы не хотите выполнять полную установку GNU Parallel, вы можете выполнить минимальную установку: http://git.savannah.gnu.org/cgit/parallel.git/tree/README

    Linux и Unix - лучшая ОС в мире.