gnu-parallel

並列ループに依存する他のジョブを順次実行している間に bash の並列 for ループ
gnu-parallel

並列ループに依存する他のジョブを順次実行している間に bash の並列 for ループ

私のBashスクリプトでは、2つの異なる関数を実行する必要があり、taskA整数taskB()をパラメータとして使用します$i。taskB $i完了するかどうかによって異なるため、taskA $i次のような短いコードがアクションを実行します。 #!/bin/bash taskA(){ ... } taskB(){ ... } for i in {1..100}; do taskA $i taskB $i done taskA別の場所で独立して実行できるため、セマフォを$i作成できます(ここから取得)。Bash FORループの並列化)並...

Admin

GNUパラレル:空の文字列引数を使用してエクスポートされたbash関数を呼び出す方法は?
gnu-parallel

GNUパラレル:空の文字列引数を使用してエクスポートされたbash関数を呼び出す方法は?

想像する: $ process(){ echo "[$1] [$2] [$3]" ; } ; export -f process $ process "x" "" "a.txt" [x] [] [a.txt] ここでは、2番目のパラメータが空の文字列(予想)であることがわかります。 $ find -name "*.txt" -print | SHELL=$(type -p bash) parallel process "x" "" [x] [./a.txt] [] [x] [./b.txt] [] [x] [./c.txt] [] ここでは、2番目のパ...

Admin

GNUを使用して非常に長い行を並列に処理する
gnu-parallel

GNUを使用して非常に長い行を並列に処理する

データベースにリロードする前に編集(一部の検索/置換)が必要な非常に大きなSQLダンプファイル(30GB)があります。 ファイルサイズが大きいだけでなく、非常に長い行も含まれています。最初の40行と最後の12行を除いて、他のすべての行の長さは約1MBです。次の行はすべてINSERTO INTOコマンドで、すべて似ているようです。 cat bigdumpfile.sql | cut -c-100 INSERT INTO `table1` VALUES (951068,1407592,0.0267,0.0509,0.121),(285 INSERT INTO `...

Admin

gnu並列:プログラムの出力を制御する方法は何ですか?
gnu-parallel

gnu並列:プログラムの出力を制御する方法は何ですか?

迅速かつ簡単です。このコマンドは有効です locate -i mymovieormysong|parallel mplayer 曲(または映画)は再生されますが、キーボードでmplayerを制御することはできません。 (可能であれば)どうすればいいですか? 実際にキーボードを使用して前後に移動すると、次のような結果が表示されます。 ^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[D^[[D^[[D 編集1:-u(グループ解除)オプションを使用すると出力が表示されますが、mplayerを制御するためにキーボードを押すとまだ[Cと[D]が表示さ...

Admin

単一の接続でwgetと並列にファイルをダウンロードする
gnu-parallel

単一の接続でwgetと並列にファイルをダウンロードする

この質問は後続の質問です。wgetを使用して複数のファイルを同時にダウンロードする方法は? この質問と同様に、多くのファイルをダウンロードする必要があります。上記の回答によるとお勧めですcat url-list | parallel -j8 wget {}。ただし、これには各URLのTCP接続とhttps / TLSネゴシエーションが必要です。これはクライアントとサーバー側の両方で無駄です。 すべてのURLが同じサーバーにある場合は、GET /object.txt単一のTCP / HTTP接続を介して複数のクエリを実行できます。 Q:wgetでこれを行う方法...

Admin

アーカイブ名をフォルダ名として使用して、マルチスレッド方式で複数の7zアーカイブを独自のフォルダに抽出する方法は?
gnu-parallel

アーカイブ名をフォルダ名として使用して、マルチスレッド方式で複数の7zアーカイブを独自のフォルダに抽出する方法は?

アーカイブ名をフォルダー名として使用してすべての7zアーカイブを独自のフォルダーに抽出するには、次のコマンドを実行します。 7z x "*.7z" -o* a.7zたとえば、2つのファイルとがある場合とb.7zフォルダがa作成されます。これにはそれぞれとその内容が含まれます(ディレクトリ構造を保持)。ba.7zb.7z 時には7zアーカイブが多すぎるため、複数のコアを使用してそれらを抽出したい場合があります。私はこれを読んだ回答渡すアルトゥーンS.タシュキノフ: 7z 解凍はシングルスレッドなので、圧縮形式の制限です。 parallelだから私の場合は...

Admin

Bashコードの並列バージョン作成の問題
gnu-parallel

Bashコードの並列バージョン作成の問題

サンプルBashスクリプトを並列化しようとしていて、&などのコマンドを試しましたwait。並列化する効率的な方法を教えてください。 私の現在のコードはreg2変数の制限された項目としてうまく機能します。しかし、reg2変数には何百万ものエントリがあります。だから私は最も外側のループが平行になりたいと思います。コードを並列化した後は、同じ出力(たとえば、0,1,2,:,3,4,:,5,6)を取得します。 #!/bin/bash # array1=$1 # array2=($2) # reg2=($3) array1=('bam1' 'bam2' '...

Admin

GNU Parallelを使用してコマンド引数を列値にグループ化できますか?
gnu-parallel

GNU Parallelを使用してコマンド引数を列値にグループ化できますか?

次のデータを検討してください。GNUパラレルマニュアル例--group-by: cat > table.csv <<"EOF" UserID, Consumption 123, 1 123, 2 12-3, 1 221, 3 221, 1 2/21, 5 EOF レコードを1つの列にグループ化し、グループ内の他の列のすべての値をコマンドライン引数として書き込む方法はありますか? このコマンドはグループ化されていませんが、私が望む出力構造を提供します。 cat table.csv | parallel --c...

Admin

GNU Parallelの各入力パラメータを作業ディレクトリとして使用する
gnu-parallel

GNU Parallelの各入力パラメータを作業ディレクトリとして使用する

GNU Parallelを使用して各入力引数に対してコマンドを実行してみました。その引数をコマンドの作業ディレクトリとして使用しました(コマンドラインに追加せず)。 基本的に私がすべきことは次のとおりです。 /foo -> "cd /foo; mycmd" /bar -> "cd /bar; mycmd" /baz -> "cd /baz; mycmd" Parallelは代替文字列を--workdirサポートして、{}私が望むことをするようです。 --workdir mydir --wd mydir ジョブは mydir ディレク...

Admin

GNUを使用した並列ラインベースの出力、一時ファイルは不要
gnu-parallel

GNUを使用した並列ラインベースの出力、一時ファイルは不要

GNU並列処理のデフォルト出力モードは次のとおりです--group。 各ジョブの出力は一時ファイルに書き込まれ、parallelジョブが完了した後にのみ出力に渡されます。 /tmpこのデフォルト出力モードは、スペースよりも大きいデータと組み合わせて使用​​すると parallel lz4 -dc ::: /var/lib/apt/lists/*lz4 | wc 速度が遅く、競合が発生します。 parallel: Error: Output is incomplete. Cannot append to buffer file in /tmp. このモードでは...

Admin

sg_format 300以上のパラレルドライバで使用
gnu-parallel

sg_format 300以上のパラレルドライバで使用

私はしばらく前にソフトウェアの並列性について学びました。https://forums.servethehome.com/index.php?threads/mdadm-create-raid-0-quick-format.41161/#post-389210 今私の目標は以前とほぼ同じですが、別の方法でやりたいです。 私が持っている設定は次のとおりです。 シングルポートSAS2 HBAを搭載したDell SFFデスクトップ 合計14個のNetApp SAS3ディスクシェルフ Disk Shelfあたり24個の960GB 12G SAS SSDのインストール ...

Admin

RHEL7 はファイルを同じ部分に並列に分割します。
gnu-parallel

RHEL7 はファイルを同じ部分に並列に分割します。

ファイル分割を高速化するためにsplitGNUを使用してLinuxコマンドを実行できますか?parallel 圧縮ファイルを読み取り、行数またはファイルサイズに応じて同じ部分に分割します。 私は次のように努力しています: zcat file.gz | parallel --pipe --block 2000M 'gzip > {#}.gz' ...

Admin

GNUパラレル:一部のファイルが利用可能になったときに実行し、残りは待ちます。
gnu-parallel

GNUパラレル:一部のファイルが利用可能になったときに実行し、残りは待ちます。

ランダムな間隔で事前定義された数のファイルを生成する次のプロセスがあります。 #!/bin/bash for i in {1..10} do sleep $(shuf -i 20-60 -n 1) echo $i > file_$i.txt done 次のように、GNU Parallelを使用して各ファイルで独立して実行される別のプロセスがあります。 parallel wc -l ::: file_{1..10}.txt 予想通り、並列処理は現在利用可能なファイルで実行されます。残りのファイルが利用可能になるまで並列に待機し、できるだけ早...

Admin