相关疑难解决方法(0)

124
推荐指数
5
解决办法
5万
查看次数

获取 xargs 到分词占位符 {}

(虽然分在 Bash 中有一个特定的定义,但在这篇文章中它的意思是在空格或制表符上进行拆分。)

使用此输入向 xargs 演示问题,

$ cat input.txt
LineOneWithOneArg
LineTwo WithTwoArgs
LineThree WithThree Args
LineFour  With  Double  Spaces
Run Code Online (Sandbox Code Playgroud)

和这个 Bash 命令回显传递给它的参数,

$ bash -c 'IFS=,; echo "$*"' arg0 arg1 arg2 arg3
arg1,arg2,arg3
Run Code Online (Sandbox Code Playgroud)

注意如何xargs -L1将每行单词拆分为多个参数。

$ xargs <input.txt -L1 bash -c 'IFS=,; echo "$*"' arg0
LineOneWithOneArg
LineTwo,WithTwoArgs
LineThree,WithThree,Args
LineFour,With,Double,Spaces
Run Code Online (Sandbox Code Playgroud)

但是,xargs -I{}将整行扩展{}为单个参数。

$ xargs <input.txt -I{} bash -c 'IFS=,; echo "$*"' arg0 {}
LineOneWithOneArg
LineTwo WithTwoArgs
LineThree WithThree Args
LineFour  With …
Run Code Online (Sandbox Code Playgroud)

bash xargs

5
推荐指数
1
解决办法
1059
查看次数

标签 统计

bash ×1

find ×1

strip ×1

unix ×1

xargs ×1