English 中文(简体)
利用档案内容作为讲卫生运动中的指挥线论点
原标题:Using file contents as command line arguments in BASH
  • 时间:2009-11-04 14:18:19
  •  标签:

我很想知道,如何将档案内容用作指挥线论点,但正在与辛迪加作斗争。

Say:

# cat > arglist
src/file1 dst/file1
src/file2 dst/file2
src/file3 dst/file3

我怎么能将<代码>arglist文档中每一行的内容作为理由来说:cp?

最佳回答

a. 用于Xargs的-n 选择,具体说明了每个指挥部门使用多少论据:

$ xargs -n2 < arglist echo cp

cp src/file1 dst/file1
cp src/file2 dst/file2
cp src/file3 dst/file3
问题回答

使用read (这确实假定在<代码>arglist上的档案名称中的任何位置都越出):

while read src dst; do cp "$src" "$dst"; done < argslist

如果档案中的论点符合正确的命令,并引用空间名称,这也将:

while read args; do cp $args; done < argslist

如果你的目的只是将这些档案放在名单上,

$ awk  {cmd="cp "$0;system(cmd)}  file

<for loop with IFS(Internal Field Separator) set to new line

OldIFS=$IFS # Save IFS
$IFS=$ 
  # Set IFS to new line
for EachLine in `cat arglist"`; do
Command="cp $Each"
`$Command`;
done
IFS=$OldIFS




相关问题