IT News: Digital Camera, OS, Laptop, Smartphone, Smart TV, Sound...

The Author's Project by Valeri N.Kravchuk
Сайт проверен Dr.Web
Меню сайта
  • Главная страница
  • Информация о сайте
  • Дневник
  • Каталог файлов
  • Обратная связь
  • Каталог сайтов
  • FAQ
  • Доска объявлений
  • Форум
  • Фотоальбом
  • Категории раздела
    Автомобильные гаджеты, ремонт... [220]
    Безопасность IT [484]
    Блоки питания, Power Banks, зарядки... [490]
    Видеорегистраторы [220]
    Гаджеты для спорта и здоровья... [190]
    Гаджеты, аксессуары... [625]
    Измерительная техника, инструменты [449]
    Накопители данных [226]
    Нетбуки, Ноутбуки, Ультрабуки [679]
    Мультиварки, блендеры и не только... [158]
    Планшеты [758]
    Радар-детекторы [26]
    Роботы-пылесосы [37]
    Своими руками [356]
    Сети, сетевые технологии, оборудование... [269]
    Смартфоны [4966]
    Фотокамеры, объективы, искусство фотографии.. [543]
    Умный дом [47]
    Электронные книги [96]
    CB, LPD, PMR- связь... [169]
    DECT, IP-телефоны [18]
    Drones, boats, cars... [108]
    electric cars [35]
    GPS-навигаторы, трекеры... [51]
    Linux и не только [4380]
    mini computers и не только... [409]
    News IT, Это интересно, ликбез... [1113]
    Smart TV, UltraHD, приставки, проекторы... [414]
    Smart Watch [263]
    Sound: наушники, плееры, усилители... [616]
    Windows 10... [298]
    Windows 11 [28]
    Погода

  • Метеорадар БРЕСТ
  • Погода в Бресте от www.yr.no

    Яндекс.Погода БРЕСТ

  • Интересные ссылки

    COMPIZOMANIA

    Наш опрос
    Оцените мой сайт
    Всего ответов: 1339
    Статистика
    Анализ веб сайтов

    Яндекс.Метрика

    Рейтинг@Mail.ru Яндекс цитирования

    Russian America Top. Рейтинг ресурсов Русской Америки.

    eXTReMe Tracker

    Правильный CSS!


    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Locations of visitors to this page
    Форма входа
    Главная » 2015 » Май » 25 » Как использовать команду xargs в Linux
    11:44
    Как использовать команду xargs в Linux

    Как использовать команду xargs в Linux

    Оригинал: How to use xargs command in Linux
    Автор: Joshua Reed
    Дата публикации: 25 сентября 2014 года
    Перевод: А. Кривошей
    Дата перевода: апрель 2015 г.

    Попадали ли вы когда-нибудь в ситуацию, когда вам нужно запускать одну и ту же команду много раз подряд? Если да, то вы понимаете, насколько это скучно и неэффективно. А хорошая новость в том, что в операционных системах на базе Unix есть замечательная команда xargs, которая позволяет решить эту проблему.С помощью этой команды вы можете очень эффективно работать с большим количеством файлом, экономя свое время и нервы. В этой статье вы увидите, как это делается.
    У команды xargs есть два компонента. Во-первых, вы должны указать файлы, которые вас интересуют. Во-вторых, вы должны задать команду или скрипт, который вы хотите применить к каждому из этих файлов.
    В этом руководстве мы рассмотрим три сценария использования команды xargs для обработки файлов, расположенных в нескольких разных директориях:

    1. Подсчет количества строк во всех файлах.
    2. Вывод первой строки заданных файлов.
    3. Обработка каждого файла с помощью заданного скрипта.

    Рассмотрим директорию с именем xargstest (дерево директорий можно вывести с помощью команды tree с опциями -i и -f, которые позволяют вывести результаты без отступов и с полным префиксом пути для каждого файла):

     

    $ tree -if xargstest/
    

     

    дерево директорий

    Содержимое каждого из шести файлов:

    Содержимое каждого из шести файлов

    Директория xargstest, ее поддиректории и файлы будут далее использоваться в наших примерах.

    Сценарий 1: подсчет количества строк во всех файлах

    Как говорилось ранее, первым компонентом команды xargs является список файлов, с которыми работает команда. Для того, чтобы индентифицировать эти файлы и вывести их спиоск, можно воспользоваться командой find. Опция -name 'file??' показывает, что нас интересуют только файлы, чье название начинается с "file", после чего в названии есть еще два любых любых символа. Поиск производится в директории xargstest, причем поиск осуществляется рекурсивно, то есть и во всех поддиректориях xargstest (если они имеются).

     

    $ find xargstest/ -name 'file??'
    
    xargstest/dir3/file3B
    xargstest/dir3/file3A
    xargstest/dir1/file1A
    xargstest/dir1/file1B
    xargstest/dir2/file2B
    xargstest/dir2/file2A
    

     

    Мы можем перенаправить результаты поиска в команду sort, чтобы упорядочить их по имени:

     

    $ find xargstest/ -name 'file??' | sort
    
    xargstest/dir1/file1A
    xargstest/dir1/file1B
    xargstest/dir2/file2A
    xargstest/dir2/file2B
    xargstest/dir3/file3A
    xargstest/dir3/file3B
    

     

    Теперь нам нужен второй компонент, представляющий собой команду, которую мы хотим выполнить. Для подсчета количества строк в каждом файле мы будем использовать команду wc с опцией -l (количество строк отображается в начале каждой строки вывода):

     

    $ find xargstest/ -name 'file??' | sort | xargs wc -l
    
     1 xargstest/dir1/file1A
     2 xargstest/dir1/file1B
     3 xargstest/dir2/file2A
     4 xargstest/dir2/file2B
     5 xargstest/dir3/file3A
     6 xargstest/dir3/file3B
    21 total
    

     

    Вы видите, что вместо того, чтобы вручную запускать команду wc -l для каждого из этих файлов, xargs позволяет выполнить эту операцию одной командой. Вы можете легко осуществлять различные операции с сотнями файлов.

    Сценарий 2: вывод первой строки каждого из заданных файлов

    Теперь, когда вы в общем понимаете, как использовать команду xargs, вы имеете полную свободу в выборе команды для выполнения. Иногда вам может понадобиться обработать только некоторую выборку файлов, но не все, расположенные в данной директории. В таком случае необходимо воспользоваться командой find с опцией -name для того, чтобы выбрать требуемые файлы и перенаправить их в команду xargs. Например, если вам нужно вывести первую строку всех файлов, имена которых заканчиваются на "B", используется следующая комбинация команд find, xargs и head (head -n1 выводит первую строку файла):

     

    $ find xargstest/ -name 'file?B' | sort | xargs head -n1
    ==> xargstest/dir1/file1B <==
    one
    
    ==> xargstest/dir2/file2B <==
    one
    
    ==> xargstest/dir3/file3B <==
    one
    

     

    Вы видите, что обрабатываются только файлы, чье имя заканчивается на "B", остальные игнорируются.

    Сценарий 3: Обработка каждого файла с помощью скрипта

    Наконец, у вас может быть свой скрипт (написанный на Bash, Python, или, например, на Perl) для обработки файлов. Просто подставьте его имя вместо команд wc и head в предыдущем примере.

     

    $ find xargstest/ -name 'file??' | xargs myscript.sh
    

     

    Необходимо, чтобы скрипт myscript.sh был написан таким образом, чтобы он принимал имя файла в качестве аргумента и обрабатывал этот файл. Приведенная выше команда будет применять этот скрипт к каждому файлу, найденному командой find.

    Обратите внимание, что в вышеприведенных примерах имена файлов не содержат пробелов. В целом можно сказать, что жизнь в Linux значительно приятнее в том случае, если вы не используете пробелы в именах файлов. Если же вам необходимо обработать файлы, чьи названия включают пробелы, приведенная выше команда не будет работать. Ее необходимо немного модифицировать, добавив опцию "-print0" к команде find (которая выводит полное имя с символом "null" после него в stdout) и опцию "-0" к команде xargs (которая интерпретирует символ "null" в конце строки), как показано ниже:

     

    $ find xargstest/ -name 'file*' -print0 | xargs -0 myscript.sh
    

     

    Обратите внимание, что аргумент для опции -name изменился на 'file*', что подразумевает любые файлы с именами, начинающимися с "file" и заканчивающимися любыми символами.

    Заключение

    После прочтения этого руководства вы будете знать возможности команды xargs и как вы можете использовать их в своей работе. Скоро вы будете тратить гораздо меньше времени на выполнение повторяющихся задач. Если вы хотите узнать обо всех опциях и возможностях команды xargs, просто наберите в терминале:

     

    $ man xargs
    

     

    http://rus-linux.net/MyLDP/consol/xargs-kommand-in-linux.html

    Категория: Linux и не только | Просмотров: 866 | Добавил: laptop | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк - единственный из зверей, который может пойти в бой на более сильного противника.
    Если же он проиграл бой, то до последнего вздоха смотрит в глаза противника. После этого умирает...

    Праздники сегодня

    Поиск
    Календарь
    Архив записей
    Друзья сайта
  • Официальный блог
  • JEEP - the best! Mercedes - the best! Автомобильный портал города Бреста: технические характеристики с фото, авторынок, автоспорт...
    Наша кнопка
    IT новости с моего лаптопа...

    Внимание!
    Администратор сайта laptop.ucoz.ru не несет ответственности за содержание рекламных объявлений. Все используемые на сайте зарегистрированные товарные знаки принадлежат своим законным владельцам! Используемая со сторонних источников информация публикуется с обязательными ссылками на эти источники.
    Copyright Valeri N.Kravchuk © 2007-2024