酷徒LOGO
0 0 评论
文章标签:spa  Space  BASH  文件  Shell  

问题:

我有一个名为requirements.txt的文件,每行都有一个package:


package1


package2


package3



我在寻找一个命令,可以读取require.txt的每一行,并以空格分隔。


command package1 package2 package3



答案1:


command $(<file)



使用printf来构建一个参数列表,并使用xargs来构建命令行,以解决此问题:


printf"%s" $(<file) | xargs -0 command



答案2:

可以使用xargs,分隔符设置为换行符(n ): 这将确保参数传递正确,即使它们包含空格:


xargs -rd'n' command < requirements.txt



回答3:

使用tr和bash替换:


command $(tr 'n' ' ' < requirements.txt)



例如:


echo $(tr 'n' ' ' < requirements.txt)



输出将为:


package1 package2 package3



或者:


sudo apt install -y $(tr 'n' ' ' < requirements.txt)



将安装所有软件包。

回答4:

从文件中读取项目,而不是标准输入:


xargs --arg-file=requirements.txt echo



或者,如果参数列表太长,则失败(而不是运行echo多次):


xargs --arg-file=requirements.txt -n 1 echo



--arg-file的缩写形式为-a,因此如果需要,可以使用xargs -a requirements.txt代替--arg-file=requirements.txt



文章标签:文件  spa  Shell  Space  BASH  

Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备17041772号-2  |  如果智培  |  酷兔英语  |  帮酷