shelll编程之xargs命令:上一个命令输出作为下一个命令的输入

Posted 锦衣admin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shelll编程之xargs命令:上一个命令输出作为下一个命令的输入相关的知识,希望对你有一定的参考价值。

shelll编程之xargs命令:上一个命令输出作为下一个命令的输入

xargs命令

xargs命令 可以将管道或者标准输入(stdin)的数据转换成命令行参数,也能够从文件的输出中读取参数

xargs命令 一般是和管道符一起使用

xargs命令说明:

命令格式:
	#l 命令 | xargs 选项 选项的值
		选项说明:
			-a filename:从文件中读入作为stdin,如:xargs -a 1.txt(就是读取1.txt的内容作为下一参数的stdin-E flag:flag必须是一个以空格分隔的标志,当xargs分析到含有flag这个标志的时候就停止
			
			-p:交互式打印。当每次执行一个argument的时候询问一次用户
			-t:表示先打印命令,然后再执行
			-n num:后面加次数,表示命令在执行的时候一次性用的argument的个数,默认是用所有
			
			-i或-I:将xargs的每项名称,一般是一行一行赋值给{},可以用{}代替
			-r no-run-if-empty:当xargs的输入为空的时候则停止xargs,不用再去执行
			-d delim:指定分割符,默认的xargs分割符是回车,argument的分隔符是空格。


演示:
		[root@server ~]# cat 1.txt
			a
			b
			c
			d
			1234
			2
			3

	# xargs -a 1.txt		=>	-a 读取文件内容
		[root@server ~]# xargs -a 1.txt
			a b c d 1234


	# xargs -a 1.txt -E c		=> 通过-E 指定一个标志,让xargs执行到这个标志就停止
		[root@server ~]# xargs -a 1.txt -E c
			a b
		[root@server ~]# xargs -a 1.txt -E 1		=> 因为没有1这个标志,所以xargs不会执行-E 选项
			a b c d 1234 2 3
		[root@server ~]# xargs -a 1.txt -E 2		=>2这个标志,会停止执行
			a b c d 1234

	# xargs -a 1.txt -p			=> -p 会询问是否打印,并且会告诉你 -a 选项是如何打印出来的,通过echo命令
	[root@server ~]# xargs -a 1.txt -p
		echo a b c d 1234 2 3 ?...y			=>	输入 y 执行打印
		a b c d 1234 2 3
	[root@server ~]# xargs -a 1.txt -p
		echo a b c d 1234 2 3 ?...n			=>	输入 n 不执行打印

	# xargs -a 1.txt -t				=>	-t 选项和-p选项一样,但是不会询问,直接打印出来
		[root@server ~]# xargs -a 1.txt -t
		echo a b c d 1234 2 3
		a b c d 1234 2 3

	# xargs -a 1.txt -n1			=> 通过制定 -n 选项指定一行输出几个数据
		[root@server ~]# xargs -a 1.txt -n1
			a
			b
			c
			d
			1234
			2
			3
	[root@server ~]# xargs -a 1.txt -n2
			a b
			c d
			1234 2
			3
		[root@server ~]# xargs -a 1.txt -n3
			a b c
			d 1234 2
			3

	# xargs -a 1.txt -d "-"			=>	-d 选项改掉列与列的默认分隔符为其他,就会换行
		[root@server ~]# xargs -a 1.txt -d "-"
			a
			b
			c
			d
			1234
			2
			3
		[root@server ~]# xargs -a 1.txt		=>	不修改默认分隔符是空回车,全部一行打印
			a b c d 1234 2 3

以上是关于shelll编程之xargs命令:上一个命令输出作为下一个命令的输入的主要内容,如果未能解决你的问题,请参考以下文章

xargs用法

xargs 命令教程

xargs标准输出作为参数 给命令 echo file{1..10}| xargs touch

每天一个Linux命令(21)--find命令之xargs

每天一个 Linux 命令(21):find命令之xargs

每天一个linux命令(文件操作):转载find命令之xargs