xargs的使用1.英语不太好 ,看了xargs的man 页面,也没看太明白,如果才能提高技术机英语水平?2.这条命令我是
xargs的使用
1.英语不太好 ,看了xargs的man 页面,也没看太明白,如果才能提高技术机英语水平?
2.这条命令
我是想让ls显示搜索的时候给每个文件的路径前缀都加上去,求人指定原因,或者更好的方法,谢谢了,,
awk shell
[解决办法]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 后面命令的参数。
[解决办法]1. 没别的办法,多看,熟悉linux/unix中的概念。这儿有个网站也许有用(还好玩):http://explainshell.com/。有不懂的命令,这个网站会帮你找出有关命令中参数的文档。
2. 从http://stackoverflow.com/questions/246215/how-can-i-list-files-with-their-absolute-path-in-linux抄的:
Use this for dirs:
ls -d -1 $PWD/**
this for files:
ls -d -1 $PWD/*.*
this for everything:
ls -d -1 $PWD/**/*
Taken from here http://www.zsh.org/mla/users/2002/msg00033.html
还可以:
find /full/path -maxdepth 1
可以用这个命令试试前面提到的网站。
------解决方案--------------------
最近用了下sublime 还不错