タグ付けされた質問 「xargs」

xargsは別のコマンドを実行し、標準入力からその引数を生成するコマンドです

3
「検索」出力から複数のファイルを開く方法は?
私はディレクトリにある複数のファイルを次のように開くことができることを知っています: find -name *.foo -xargs <command> {} \; これは機能しますが、geditで多数のテキストファイルを同時に開こうとすると、それらが連続して開かれます(1つのファイルが閉じられると、次のファイルが開かれます)。 これらのファイルをすべて同時に開きたいのですが。どうすればこれを達成できますか?
10 bash  find  xargs 

2
xargsを使用してscpにパラメーターを提供する
を実行するとsvn st | awk '{print $2}'、次のようになります。 a.py b.py c.py 次に、scpこれらのファイルをリモートサーバーに配置します。私が試してみました: svn st | awk '{print $2}' | xargs scp my_name@my_server:~/ しかし、それは機能しません。これを行うための正しいコマンドは何ですか? ありがとうございました!
10 scp  xargs 

2
dockerで文字列を検索してsedするとエラー「デバイスまたはリソースがビジーです」が発生する
この問題は、Dockerコンテナでのみ発生します。 だけfindで結構です。 find ${BASIN_SPIDER_CONFIG_PATH} -type f -name "*.json" find セッド付き find ${BASIN_SPIDER_CONFIG_PATH} -type f -name "*.json"|xargs sed -i "s/10.142.55.199/host02/g" エラーを出します: /xxx/config/sed8Ey5tD: Device or resource busy 何なのか分からないsed8Ey5tD、ls見えない。港湾労働者によるものだと思いますが、わかりません。 sed成功する方法は? OK、ファイルがdockerによってボリューム化されていることがわかり volumes: /xxx/config.json : /xxx/config/config.json ましたdocker-compose.yml。その後docker-compose down、ファイルを編集できます。しかし、どうすればファイルを編集できますdocker-compose downか?
10 sed  find  docker  xargs 

3
xargs並列使用の修正
私はxargspythonスクリプトを呼び出して約3000万の小さなファイルを処理するために使用しています。xargsプロセスの並列化に使用したいと思います。私が使用しているコマンドは: find ./data -name "*.json" -print0 | xargs -0 -I{} -P 40 python Convert.py {} > log.txt 基本的にConvert.pyは、小さなjsonファイル(4kb)を読み取り、いくつかの処理を行って、別の4kbファイルに書き込みます。CPUコアが40のサーバーで実行しています。また、このサーバーでは他のCPU負荷の高いプロセスは実行されていません。 htopを監視することで(ところで、CPUパフォーマンスを監視する他の良い方法はありますか?)、私はそれ-P 40が期待されるほど速くないことを発見しました。場合によっては、すべてのコアがフリーズして3〜4秒間ほぼゼロになり、その後60〜70%に回復します。次に、並列プロセスの数をに減らしてみますが-P 20-30、まだそれほど高速ではありません。理想的な動作は、線形スピードアップである必要があります。xargsの並列使用に関する提案はありますか?

2
find + xargsでファイルを移動する:ターゲットはディレクトリではありませんか?
次のコマンドを実行すると: > mkdir some_dir > find /foo/bar/ -name '*.csv' -print0 | xargs -0 mv {} some_dir 次のような数百行が表示されます。 mv: target `/foo/bar/XX.csv` is not a directory どうして?xargsが実行されると思った: mv /foo/barXX.csv some_dir find見つかったすべてのファイルに対して。どうしたの?ちなみにこれはzshで 更新: Update1: 私は試した: find /foo/bar/ -name '*.csv' -print0 | xargs -0 mv {} -t some_dir しかし、私は次のような数行を得ました: mv: cannot stat `{}': No …
9 find  xargs 

3
xargs引数を文字列として '>'を使用して別のコマンドに渡しますか?
にたくさんのファイルがあるとします/tmp/。 私がやります find . -type f | xargs -iFILES そしてmd5sum、各ファイルでaを実行して、同じ名前で.md5拡張子を付けたファイルに出力します。 find . -type f | xargs -iFILES md5sum FILES > FILES.md5 これは、findコマンドで見つかったファイルごとにmd5ファイルを作成することになっています。代わりに、すべてのファイルのチェックサムを使用して、ディスク上に単一のFILES.md5ファイルを作成します。 md5sumコマンドに、FILESが現在のファイル名を表し、FILESリテラル文字列ではないことをどのように伝えますか?

3
コンマ区切りのリストを次のコマンドの引数として指定する方法
s1「、」で区切られた数値のリストを出力するスクリプトがあります1,2,3,4。ここで、これらの数値をs2引数としてスクリプトに指定し、s2がそれぞれで実行され、その結果が別々の行に出力されるようにします。たとえば、s2が数値を2倍する場合、これは私が探している結果です。 2 4 6 8 私が今やっていることは: s1 | xargs -d "," | xargs -n1 s2 でも馬鹿なやり方でやっているような気がします!だから私の質問は: それを行う適切な方法は何ですか? 私の解決策の私の問題は、xargsを2回呼び出し、入力を2回反復することです。これはもちろん、パフォーマンスの観点から見ると妥当ではありません。答えxargs -d "," -n1はいいようですが、それが1回だけ繰り返されるかどうかはわかりません。もしそうなら、あなたの答えでそれを確認してください、そして私はそれを受け入れます。ちなみに、Perlはまだ2度繰り返されており、Perlが多くのシステムに存在しない可能性があるため、Perlは使用しません。
9 pipe  xargs  arguments 

5
xargsにスペースと猫からの特殊文字を処理させる方法は?
私が持っているfile名前のリストが含まれていることを。つまり: Long Name One (001) Long Name Two (201) Long Name Three (123) ... スペースといくつかの特殊文字。私はこれらの名前からディレクトリを作りたかった、すなわち: cat file | xargs -l1 mkdir それはすなわち、個々のディレクトリをスペースで区切っなりLong、Name、One、Two、Three、代わりの Long Name One (001)、Long Name Two (201)、Long Name Three (123)。 どうやってやるの?

2
「ls」から「xargs」を介して「tar」に変数を渡す
私は何かをしようとしています ls -t | head -n 3 | xargs -I {} tar -cf t.tar {} 最後に変更された3つのファイルをアーカイブしますが、ファイルごとに個別にtarコマンドを実行し、最後に3つのファイルの最後を含む1つのtarファイルが残ります(順序は任意)。「xargs」を正しく使用していないことはわかっていますが、検索しても効果がありませんでした。どちらも機能しない例を見つけました。より単純なコマンドでも ls | xargs -I {} tar -cf t.tar {} そのディレクトリ内のファイルの1つだけを含むtarファイルで終了します。
9 linux  ls  tar  xargs 

6
サイズで画像を検索:find / file / awk
私は一定の高さ(500px以上)のpng画像ファイルを見つけようとしています。私はそれfileが画像の寸法を返すことを知っています。例: $ file TestImg1a.png TestImg1a.png: PNG image data, 764 x 200, 4-bit colormap, non-interlaced しかし、私はこれを使用して、高さが500pxを超えるディレクトリ内のすべてのファイルを検索する必要があります。高さに関係なくすべてのファイルを印刷する方法を知っています。 find . -name '*.png' | xargs file | awk '{print $7 " " $1}' しかし、どうすれば$ 7を500を超える結果に制限できますか?
9 files  find  awk  xargs  images 

6
毎月の名前のディレクトリを作成するにはどうすればよいですか?
毎月ディレクトリ名を作成したいと思います。シェルで遊んだ後、次のことがわかります。 date -d 1/01 +%b # Gives Jan date -d 2/01 +%b # Gives Feb . date -d 12/01 +%b # Gives Dec だから私はブレース展開を使用して、echo {1..12}/01それを試してみましxargsた: echo {1..12}/01 | xargs -n 1 -I {} date -d {} +%b しかし、それは惨めに失敗します:/(後で適用したいと思いますmkdir)。これどうやってするの?

3
_PROXYに一致するすべてのENV変数の設定を解除します
私は一致するすべての環境変数を設定解除しようとしています_PROXY: env | grep -i _proxy | column -t -s '=' | awk '{ print $1 }' | grep -iv 'no_proxy' | xargs -0 -I variable unset variable しかし、それはで失敗していxargs: unset: No such file or directoryます。 ただし、に変更しようとするunsetとecho、すべてが期待どおりに機能しているように見えます。設定されている変数のリストが表示されます。 env | grep -i _proxy | column -t -s '=' | awk '{ print …

2
xargsがサブシェルに渡されるときに最初の引数をスキップするのはなぜですか?
xargsワンライナーで複数のコマンドを呼び出す方法を探していたところ、findutilsで次のようにxargsからシェルを呼び出すように推奨されています。 $ find ... | xargs sh -c 'command $@' 面白いのは、そのようなxargsを使用すると、何らかの理由で最初の引数がスキップされることです。 $ seq 10 | xargs bash -c 'echo $@' 2 3 4 5 6 7 8 9 10 $ seq 10 | xargs -n2 bash -c 'echo $@' 2 4 6 8 10 シェルまたはxargsバージョンに何か問題がありますか?そのドキュメントは不正確ですか? 使用xargsの(GNU用のfindutils)4.4.2とGNUのbashのバージョン4.3.11(1)-release。
8 shell  xargs 

2
xargsが「ls」エイリアスを使用しない
AIXでは(ただし、これはHP-UXでも発生します)、パスにGNU lsがあり、エイリアスとしても使用されlsます。 xargsを使用するlsと、エイリアスの代わりに標準のUnixが使用されます。 たとえば(flocateは、検索対象の正確なパスを検索する関数です): flocate mirrorvg | xargs ls -lh ls: illegal option -- h usage: ls [-1ACFHLNRSabcdefgiklmnopqrstuxEUX] [File...] ls -lh /usr/sbin/mirrorvg -r-xr-x--- 1 root system 37K apr 3 2014 /usr/sbin/mirrorvg* xargsがlsエイリアスを使用しないのはなぜですか?
8 aix  xargs  hp-ux 

4
スペースがあるgrep出力でxargs grepを実行するにはどうすればよいですか?
正規表現に基づいてファイルを検索してから、それらのファイルのコンテンツを検索しようとしています。たとえば、私は次のようなものを持っています #Find all C++ files that match a certain pattern and then search them find . -name "*.cpp" | grep "<name regex>" | xargs grep "<content regex>" 私が遭遇している問題は、いくつかのパスにスペースが含まれていることですxargs。だけを使用している場合はfind、-print0引数を(-0引数on と共にxargs)使用して、xargsがスペースを区切り文字として扱わないようにすることができます。同様のものはありgrepますか? それとも、この問題に完全に間違った方法で取り組んでいますか?単純に、findto は私grepにxargs grepは理にかなっていますが、同じ結果が得られる他のアプローチを受け入れます。
8 shell  grep  find  quoting  xargs 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.