Linux 中的 xargs 命令及示例
重要性:
一些命令如 grep 可以接受输入作为参数,但有些命令接受参数,这是 xargs 出现的地方。
句法 :
xargs [options] [command]
xargs 选项:
-0 :输入项以空字符而不是空格终止
-a file :从文件中读取项目而不是标准输入
–delimiter = delim :输入项以特殊字符结束
-E eof-str :将文件字符串的结尾设置为 eof-str
-I replace-str :用从标准输入读取的名称替换初始参数中出现的 replace-str
-L max-lines :每个命令行最多使用 max-lines 非空白输入行。
-p :提示用户是否运行每个命令行并从终端读取一行。
-r :如果标准输入不包含任何非空格,则不运行该命令
-x :如果超出大小则退出。
–help :将选项摘要打印到 xargs 并退出
–version :打印版本号。 xargs 和退出
例子 :
例子 :
下面是 C 程序,它读取一个文本文件“test.txt”,然后将该程序的输出作为 touch 命令的输入。
文本文件“test.txt”的内容
file1
file2
file3
file4
// C program to read contents of file
#include
// Driver Code
int main(){
int c;
FILE *file;
// open file test.txt
file = fopen("test.txt", "r");
if (file) {
// read file line-by-line until
// end of file
while ((c = getc(file)) != EOF)
putchar(c);
fclose(file);
}
return 0;
}
输出 :
file1
file2
file3
file4
现在,使用./a.out 的输出作为触摸命令的输入
带选项的命令用法:
xargs --version
打印 xargs 命令的版本号,然后退出。
输出 :
xargs (GNU findutils) 4.7.0-git
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later .
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
xargs -a test.txt
它将显示文件的内容
file1
file2
file3
file4
xargs -p -a test.txt
-p 选项在运行每个命令行之前提示确认。如果响应以 'y' 或 'Y' 开头,它只运行命令行
输出 :
# xargs -p -a test.txt
echo file1 file2 file3 file4 ?...y
file1 file2 file3 file4
# xargs -p -a test.txt
echo file1 file2 file3 file4 ?...n
xargs -r -a test.txt
现在,假设文件“test.txt”为空,并且上面的命令被执行, -r 选项确保如果标准输入为空,则不执行命令,因此上面的命令不会产生任何输出,
但是,如果在没有 -r 选项的情况下执行上述命令,它将产生一个空行作为输出。
请参阅下图作为实例:
– 曼迪普·辛格
参考 :
1) xargs 维基百科
2)需要xargs
3) xargs 手册页