有關於xargs -i的問題 - Linux

Table of Contents

之前寫了一個程式,會讀取第一個argument作為參數使用,另外在一個txt檔中將很多args
一個一個列出來,類似:
A B C D ...
其中A B C D都是該執行的指令。

然後再利用cat args.txt | xargs -i command {}的指令,希望能一次執行所有數據。但
最後發現這樣寫的話,xrags似乎會把一整行當作一個argument,因為我以下列指令測試
時:
echo 123 456| xargs -i ./a.out {}
(a.out是我臨時寫的程式,作用只是把第一個argument印出來)
執行的結果為:
123 456
但當我改成:
echo 123 456| xargs ./a.out
執行的結果卻是:
123
而改成;
echo "123\n456"| xargs -i ./a.out {}
得到的是:
123
456
我原先希望得到的結果為最後一個,但是直接使用-i時xargs卻把整行指令包含空白都當
作一個argument,只會把換行當作不同參數,不知道-i是不是真的只能將換行當作分隔呢?

--

All Comments

Lydia avatarLydia2010-09-06
-d 好像可以指定delimiter 不知道是不是你要的
Victoria avatarVictoria2010-09-10
echo "123 456" | xargs -i -d" " ./a.out {}
Edward Lewis avatarEdward Lewis2010-09-14
我這邊的xargs似乎沒有這個參數@@
Leila avatarLeila2010-09-17
ubuntu有-d可用 原po可以用msn xargs查查看有沒有類似的
Belly avatarBelly2010-09-18
man xargs -w-??? msn 微妙..
John avatarJohn2010-09-19
哈哈,夜深了,頭腦不太清楚 XDDD