xargs的使用解决办法

xargs的使用
1.英语不太好 ,看了xargs的man 页面,也没看太明白,如果才能提高技术机英语水平?
xargs的使用解决办法


2.这条命令
ls ftpTool|awk -v var="ftpTool/" '{print $var$1}'

每次执行结果都是
xargs的使用解决办法
我是想让ls显示搜索的时候给每个文件的路径前缀都加上去,求人指定原因,或者更好的方法,谢谢了,,
xargs的使用解决办法
------解决方案--------------------
awk定义的value不用加$

ls ftpTool
------解决方案--------------------
awk -v var="ftpTool/" '{print var$1}'

------解决方案--------------------
1. xargs cmd 的作用就是把输入进行分割,作为参数执行命令cmd;
使用xargs的一个原因就是命令的输入长度都是由限制的,比如1K或者64K, xargs能把输入进行分割,然后调用分割后的参数多次调用cmd, 看下面的例子

fb82:/home/mymtom/tmp/xargs$ cat args.c cmd.c
/*-
 * Copyright (C) mymtom
 *
 * vi:set ts=4 sw=4:
 */
#ifndef lint
static const char rcsid[] = "$Id$";
#endif /* not lint */

/**
 * @file        args.c
 * @brief
 */

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
        int i;

        if (argc != 2)
                exit(1);

        for (i = 0; i < atoi(argv[1]); i++) {
                printf("arg%d\n", i);
        }

        return 0;
}



/*-
 * Copyright (C) mymtom
 *
 * vi:set ts=4 sw=4:
 */
#ifndef lint
static const char rcsid[] = "$Id$";
#endif /* not lint */

/**
 * @file        cmd.c
 * @brief
 */

#include <stdio.h>

int main(int argc, char *argv[])
{
        int i;

        for (i = 0; i < argc; i++) {
                printf("%s ", argv[i]);
        }
        printf("\n");

        return 0;
}


fb82:/home/mymtom/tmp/xargs$ ./args 10
arg0
arg1
arg2
arg3
arg4
arg5
arg6
arg7
arg8
arg9
fb82:/home/mymtom/tmp/xargs$ ./args 10 
------解决方案--------------------
 xargs ./cmd
./cmd arg0 arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 
fb82:/home/mymtom/tmp/xargs$ ./args 10 
------解决方案--------------------
 xargs -n1 ./cmd
./cmd arg0 
./cmd arg1 
./cmd arg2 
./cmd arg3 
./cmd arg4 
./cmd arg5 
./cmd arg6 
./cmd arg7 
./cmd arg8 
./cmd arg9 
fb82:/home/mymtom/tmp/xargs$ ./args 10 
------解决方案--------------------
 xargs -n2 ./cmd
./cmd arg0 arg1 
./cmd arg2 arg3 
./cmd arg4 arg5 
./cmd arg6 arg7 
./cmd arg8 arg9 
fb82:/home/mymtom/tmp/xargs$ ./args 10 
------解决方案--------------------
 xargs -n3 ./cmd
./cmd arg0 arg1 arg2 
./cmd arg3 arg4 arg5 
./cmd arg6 arg7 arg8 
./cmd arg9 
fb82:/home/mymtom/tmp/xargs$ ./args 10 
------解决方案--------------------
 xargs -n5 ./cmd
./cmd arg0 arg1 arg2 arg3 arg4 
./cmd arg5 arg6 arg7 arg8 arg9 
fb82:/home/mymtom/tmp/xargs$ ./args 10 
------解决方案--------------------
 xargs -n4 ./cmd
./cmd arg0 arg1 arg2 arg3 
./cmd arg4 arg5 arg6 arg7 
./cmd arg8 arg9 
fb82:/home/mymtom/tmp/xargs$ 

其中xargs -n1 ./cmd 的选项告诉xargs每次只用一个参数调用cmd
2.
ls ftpTool
------解决方案--------------------
awk -v var="ftpTool/" '{print $var$1}'
改为
ls ftpTool
------解决方案--------------------
awk -v var="ftpTool/" '{print var$1}'
awk里var里个变量, 不要加$

------解决方案--------------------
楼主说的是shell命令xargs,就是吧上个命令的输出作为这个xargs 后面命令的参数。
------解决方案--------------------