GNU/Linux >> Linux の 問題 >  >> Linux

Xargsにどの引数を選択するかを伝える方法??

この質問にはすでに回答があります :ファイルを見つけてxargsを使用して移動するにはどうすればよいですか?

(5つの回答)
6年前に閉鎖されました。

xargsが最初のコマンド出力を2番目のコマンドの引数にリダイレクトし、出力のどの要素に対してどの引数を選択するかが選択できない場合、たとえば、次の1つの方法しかありません。

ls | xargs file  # there are as many arguments as files in the listing,
                 # but the user does not have too choose himself

選択が必要な場合:

ls | xargs file | grep image | xargs mv.....   # here the user has to 
                                               # deal  with two arguments of mv, first for source second for destination, suppose your destination argument is set already by yourself and you have to put the output into the source argument. 

最初のコマンドの標準出力を2番目のコマンドの選択した引数にリダイレクトするようにxargsにどのように指示しますか?

承認された回答:

-Iを使用できます xargsに入力された引数の各値に置き換えられるプレースホルダーを定義します 。たとえば、

ls -1 | xargs -I '{}' echo '{}'

echoを呼び出します lsから1行に1回 の出力。 '{}'がよく表示されます おそらくfindと同じであるために使用されます のプレースホルダー。

あなたの場合、fileも前処理する必要があります 一致するファイル名を抽出するためのの出力。 grepがあるので そこでは、awkを使用できます。 両方を実行し、fileを簡素化します 呼び出しも:

file * | awk -F: '/image/ { print $1 }' | xargs -I '{}' mv '{}' destination

GNU mvをお持ちの場合 -tを使用するだけです 複数のソースファイルを渡すには:

file * | awk -F: '/image/ { print $1 }' | xargs mv -t destination

Linux
  1. 〜/ .profileを読み直すようにGnomeに指示する方法は?

  2. Chrootで実行していることを確認するにはどうすればよいですか?

  3. Linux –ディストリビューションの選び方??

  1. どのディスクがSdaで、どちらがSdbディスクであるかを判断する方法は?

  2. InstantSiteテンプレートを選択する方法。

  3. どのプロセスが自分のプロセスにシグナルを送信したかをLinuxで確認するにはどうすればよいですか

  1. Linux –実行中のLinuxディストリビューションを特定する方法は??

  2. Raspberry Pi の起動時に実行されるサービスを確認する方法は? (ラズビアン)

  3. 実行しているユーザー制限を確認するにはどうすればよいですか?