日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

cmd find 命令 多个 或者 关系 +windows_使用 rush 进行命令并行处理

發(fā)布時間:2023/12/18 windows 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cmd find 命令 多个 或者 关系 +windows_使用 rush 进行命令并行处理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

rush 是一個類似于 GNU-parallel 的工具,提供了并行化命令的處理方案。 官方地址是:https://github.com/shenwei356/rush,該工具由人稱爪哥的生信同行用 Golang 編寫而成(強!)。 他開發(fā)的其他幾個工具也比較有名,如 seqkit、csvtk。感興趣的朋友可以訪問他的博客。

rush 提供的功能特性非常多,作為技術(shù)介紹文,這里我只會簡單介紹它的基礎(chǔ)核心功能。其他功能讀者可以通過 GitHub 官網(wǎng)閱讀和學(xué)習(xí)。

下載和安裝

  • Linux - http://app.shenwei.me/data/rush/rush_linux_amd64.tar.gz
  • MacOS - http://app.shenwei.me/data/rush/rush_darwin_amd64.tar.gz
  • Windows - http://app.shenwei.me/data/rush/rush_windows_amd64.exe.tar.gz 然后拷貝 rush.exe 到 C:WINDOWSsystem32
  • Golang - go get -u github.com/shenwei356/rush/

對于 Linux 和 MacOS,下載后記得將文件放到 PATH 變量支持的目錄下或者添加新的 PATH 路徑。

簡單使用

簡單運行

$ seq 1 3 | rush echo {} 1 2 3

使用 -k 保證輸出順序不變,對比下下面兩個結(jié)果:

seq 1 10 | rush echo {} 8 1 2 4 7 3 6 5 10 9$ seq 1 10 | rush -k echo {} 1 2 3 4 5 6 7 8 9 10

要并行的命令是可以包裹在引號中的,即 seq 1 10 | rush -k "echo {}"。

通過 -i 從文件中讀取數(shù)據(jù)

$ seq 1 3 > data1.txt $ seq 4 6 > data2.txt $ rush echo {} -i data1.txt -i data2.txt 4 6 3 1 2 5

這里比較強大在于 -i 可以多次使用。

-r 設(shè)定重試次數(shù)

這個在處理一些涉及聯(lián)網(wǎng)的操作時應(yīng)該相當(dāng)有用。

seq 1 | rush 'python unexisted_script.py' -r 1 python: can't open file 'unexisted_script.py': [Errno 2] No such file or directory [WARN] wait cmd #1: python unexisted_script.py: exit status 2 python: can't open file 'unexisted_script.py': [Errno 2] No such file or directory [ERRO] wait cmd #1: python unexisted_script.py: exit status 2

一些有用的占位符

  • 目錄名 {/}
  • 文件名 {%}
  • 移除后綴 {^suffix}
$ echo dir/file_1.txt.gz | rush 'echo {/} {%} {^_1.txt.gz}' dir file_1.txt.gz dir/file
  • 移除文件名最后的拓展名 {%.}
  • 移除文件名所有拓展名 {%:}
$ echo dir.d/file.txt.gz | rush 'echo {%.} {%:}' file.txt file

分別使用 {.} 和 {:} 會保留目錄:

$ echo dir.d/file.txt.gz | rush 'echo {.} {:}' dir.d/file.txt dir.d/file
  • job id {#}
  • 域索引 {N}
echo 12 file.txt dir/s_1.fq.gz | rush 'echo job {#}: {2} {2.} {3%:^_1}' job 1: file.txt file s
  • 使用正則表達(dá)式提取子串 {@regexp}
$ echo read_1.fq.gz | rush 'echo {@(.+)_d}' read

-d 自定義域分隔符

$ echo a=b=c | rush 'echo {1} {2} {3}' -d = a b c

-D 自定義記錄分隔符

$ echo a b c d | rush -D " " -k 'echo {}' a b c d記錄理解為數(shù)據(jù)的行,域理解為數(shù)據(jù)的列。

-n 傳遞多行數(shù)據(jù)到命令

seq 5 | rush -n 2 -k 'echo "{}"; echo' 1 23 45

-t 設(shè)定超時

這個功能我自己認(rèn)為用處不是很大,但對于處理那種長時間生信數(shù)據(jù)處理來說有時候可能會有發(fā)揮的地方。

$ time seq 1 | rush 'sleep 2; echo {}' -t 1 [ERRO] run cmd #1: sleep 2; echo 1: time out seq 1 0.00s user 0.00s system 66% cpu 0.005 total rush 'sleep 2; echo {}' -t 1 0.01s user 0.01s system 2% cpu 1.022 total

總結(jié)

以上是生活随笔為你收集整理的cmd find 命令 多个 或者 关系 +windows_使用 rush 进行命令并行处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。