通过xargs

时间:2015-12-02 06:26:44

标签: bash grep multiprocessing cat xargs

我有这个文本文件,里面有多个bash命令。类似于它的一个例子就像这样

commands.txt - >

mkdir test
rm test '\t'
mkdir test1
rm test1 '\t'
mkdir test3
rm test3 '\t'

我希望能够做的是从文本文件中获取所有rm命令并与xargs同时运行它们,并在完成后获取所有mkdir命令并同时运行它们。

我从博客中得到了这个想法 -

grep' rm' commands.txt |读我的时候;做printf"%q \ n" " $ I&#34 ;;完成| xargs --max-procs = 3 -I CMD bash -c CMD

这种作品在我的命令中确实有一个' \ t'并且它不是逃避它而是它只是放一个t。我认为这与printf有关。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

  

这种作品在我的命令中确实有一个' \ t'和它的   没有逃避它而只是放一个t。我认为这必须要做   与printf。

你很亲密;这与read有关。见 Bash Builtin Commands

  

read ...

-r

如果这样   给出了选项,反斜杠不作为转义字符。该   反斜杠被认为是该行的一部分。 ...

因此,如果您将read i更改为read -r i,则应该可以使用。