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

2.这条命令
每次执行结果都是

我是想让ls显示搜索的时候给每个文件的路径前缀都加上去,求人指定原因,或者更好的方法,谢谢了,,

------解决方案--------------------
awk定义的value不用加$
------解决方案--------------------
1. xargs cmd 的作用就是把输入进行分割,作为参数执行命令cmd;
使用xargs的一个原因就是命令的输入长度都是由限制的,比如1K或者64K, xargs能把输入进行分割,然后调用分割后的参数多次调用cmd, 看下面的例子
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 后面命令的参数。
------解决方案--------------------
1.英语不太好 ,看了xargs的man 页面,也没看太明白,如果才能提高技术机英语水平?
2.这条命令
ls ftpTool|awk -v var="ftpTool/" '{print $var$1}'
每次执行结果都是
我是想让ls显示搜索的时候给每个文件的路径前缀都加上去,求人指定原因,或者更好的方法,谢谢了,,
------解决方案--------------------
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 后面命令的参数。
------解决方案--------------------