xargs

使用 -i 参数

将前一个命令的输出,放在后一个命令的指定位置

which pandoc | xargs -i ls -al {}

在这里插入图片描述

原文

http://www.cnblogs.com/wangqiguo/p/6464234.html

笔记

输入 cat - 直接回车与输入 cat 直接回车的效果也一样,但是如果这样呢:

echo 'main' | cat test.cpp -

结果是: cat 都处理,既处理test.cpp ,也有标准输入 aka: -
在这里插入图片描述

grep 的策略是:

在这里插入图片描述

xargs

ps -ef | grep 'ddd' | xargs kill  

OK,我们在这里使用了xargs命令;;铺垫了这么久终于铺到了主题上。(tt: 前面的铺垫是: 对比catgrep,表达kill 这个命令不允许从标准输入得到参数)

xargs命令可以通过管道接受字符串,并将接收到的字符串通过空格分割成许多参数(默认情况下是通过空格分割) 然后将参数传递给其后面的命令,作为后面命令的命令行参数

xargs的一些有用的选项

-d 指定一个分割符

echo '11@22@33' | xargs -d '@' echo 

输出:

11 22 33

指定以@符号分割参数,所以等价于 echo 11 22 33 相当于给echo传递了3个参数,分别是11、22、33

-p 输出前询问你一下

在这里插入图片描述

-n 选项: 每次传n个参数给后面的命令

echo '11@22@33@44@55@66@77@88@99@00' | xargs -d '@' -n 3 echo 

输出结果:
11 22 33
44 55 66
77 88 99
00
等价于:

echo 11 22 33
echo 44 55 66
echo 77 88 99
echo 00

实际上运行了4次,每次传递3个参数,最后还剩一个,就直接传递一个参数。

-J 选项: 执行后面%% 里的命令

示例:git branch -r | grep lj_ | xargs -n 1 -J % git log % -S “abc” >> result.log 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值