2017-12-17 19 views
0

Making xargs work in Cygwin オプションxargs -IはCygwinで正しく動作しません。いくつかの回避策がありましたが、残念ながら私の場合は役に立ちません。 Cygwin環境下xargs -I%command -option1%-option2%cygwinの下で

..somthing that produces multiple lines.. | xargs -I % command -option1 % -option2 % 

私の質問は、私は同じ結果に近づくことができるか、でしょうか?

編集:

明確にするために、 私はその引数「%」のように二つの場所にそれらを入れて、標準入力からいくつかの値を取得し、「コマンド」を起動したいと思います。私は "何か"によって生成されたデータに対して複数回コマンドを呼びたいと思います。

例1:(私は私の過ちを許してください、巨大な時間のためのcppでプログラミングされていない)2

find -name *.cpp | cut -d. -f1 | xargs -I % gcc -o %.o -I %.h %.cpp 

例:あなたはxargsを必要としない

cat songs_to_process.txt | xargs -I % convert --format=mp3 --source=%.avi --output=%.mp3 
+0

あなたの質問は不明です。出力の各行にはどうしたらよいでしょうか? – choroba

+0

@chorob私は私の質問を編集しました、通知をしていただきありがとうございます。 – mpasko256

+1

Cygwinのどのバージョンがありますか?あなたはどんなエラーを出していますか? – choroba

答えて

2

この仕事は全くありません。あなたの例のうちどれもではありません。

find . -name '*.cpp' -print0 | while IFS= read -r -d '' filename; do 
    basename=${filename%.*} 
    gcc -o "${basename}.o" -I "${basename}.h" "${basename}.cpp" 
done 

...または:

while IFS= read -r song; do 
    song=${song%$'\r'} # repair if your input file is in DOS (CRLF) format 
    convert --format=mp3 --source="$song".avi --output="$song".mp3 
done <songs_to_process.txt 

bashで、入力ライン・バイ・ラインを処理するためのベストプラクティスの概要についてBashFAQ #1を参照してください。

関連する問題