LINUX.ORG.RU

[xargs] Как сконструировать нужную команду?

 


0

0

Здравствуйте!

Всегда для меня была загадкой программа xargs. После пытки гуглом складыватся впечатление, что сия программа умеет делать единственную вещь - выполнять команду вида

"текст_команды переданные_аргументы"

.

Далее идут вопросы.

.

1. Непонятно, что происходит при переданных аргументах более одного.

Толи будет выполнено:

"Текст_команды Переданный_аргумент_1 Переданный_аргумент_2"
Толи будет последовательно выполнено:
"Текст_команды Переданный_аргумент_1"
"Текст_команды Переданный_аргумент_2"

.

2. Непонятно, как конструировать команду, если нужно между аргументами ставить ключи/опции

"Текст_команды Переданный_аргумент_1 Ключ Переданный_аргумент_2"

.

3. Непонятно, как конструировать команду, если нужно несколько раз использовать какой-нибудь переданный аргумент, или нужна другая последовательность переданных аргументов.

.

Кто расскажет?


1. man xargs:

xargs reads items from the standard input,  de‐
limited  by  blanks (which can be protected with double or single quotes or a backslash) or newlines,
and executes the command (default is /bin/echo) _one or more times_ with any initial-arguments followed
by items read from standard input.

Без доп. указаний — <command> <arg1> .. <argN>, пока вызов команды влезает в ограничения системы. Потом следующий вызов <command> <argN+1> .. <argN+M> и так далее

2. Никак

3. Никак

kemm
()
Ответ на: комментарий от kemm

А каким образом можно свободно конструировать команды из переданных аргументов?

Ну чтоб синтаксис был типа такого

echo "directory file_01.txt file_02.txt" | mv $1/$2 $1/$3

?

xintrea
() автор топика

Ты хочешь странного.

xargs не для цирковых манипуляций с аргументами

sdio ★★★★★
()
Ответ на: комментарий от xydo

> man * тебя ждет))

Еще один советчик познавать дзен через гавноманы.

По непонятным причинам, маны пишутся так, что понять их можно только зная, что из себе представляет программа и как ей пользоваться. 90% манов всего лишь предостовляют инфу по синтаксису и ключам. Мазохисты может быть и станут разбираться с прогой по манам, но я уже прошел этот этап, и знаю, что это практически бесполезно.

Посему, не надо давать бесполезных советов.

xintrea
() автор топика
Ответ на: комментарий от xintrea

Может, стоит язык подучить до чуть менее говноуровня? В большинстве случаев (а стандартные команды в это большинство попадают ВСЕ) man'ы наиболее адекватный источник информации. Как минимум, для понимая, для чего команда предназначена и направления дальнейших поисков.

На все заданные вопросы в мане xargs просто и немногозначно отвечено.

kemm
()
Ответ на: комментарий от xintrea

маны то нужно не линупсячьи читать.

либо www.unix.org/single_unix_specification либо http://netbsd.gw.com/cgi-bin/man-cgi?xargs++NetBSD-current

Плюс преобразовывать можно в стиле:

ls | sed 's/^/rm -f /' | sh -s

но как минимум один недостаток этого способа в том что он требует вызова новой команды на каждую строку. xargs предпочтительнее.

dilmah ★★★★★
()
Ответ на: комментарий от dilmah

> ls | sed 's/^/rm -f /' | sh -s

О какой изврат. Представля во что превратится sed-выражение, если нужно будет вписать не только в начало, но и в середину что-то.

С awk гораздо нагляднее.

xintrea
() автор топика
Ответ на: комментарий от kemm

> Может, стоит язык подучить до чуть менее говноуровня? В большинстве случаев (а стандартные команды в это большинство попадают ВСЕ) man'ы наиболее адекватный источник информации. Как минимум, для понимая, для чего команда предназначена и направления дальнейших поисков.

Да ладно, вон в ALT большой процент манов на русский переведено, и хреналь толку? После прочтения еще больше вопросов появляется чем было. Причем остается самый главный вопрос - для чего нужна программа, что делает и как.

А англицкий мне ниасилить, так как нету базы - в школе и инсте за каким-то хреном учил немецкий только потому, что в четвертом классе рандомно дастался учебник немецкого.

xintrea
() автор топика
Ответ на: комментарий от xintrea

> А англицкий мне ниасилить, так как нету базы - в школе и инсте за каким-то хреном учил немецкий только потому, что в четвертом классе рандомно дастался учебник немецкого.

Есть всевозможные курсы. То, что кто-то в школе учил более другой язык, тем более той же языковой группы, какое-то слабое оправдание. Более того, толку от школьного изучения языка примерно ноль.

kemm
()
Ответ на: комментарий от kemm

вот-вот.

нечай на зеркало пинять, коли рожа крива... (с) откуда-то из школьной программы)

xydo ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.