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
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值