使用Google Voice服务可以免费拨打美国或加拿大境内的任何电话,而国际电话(非北美地区)的费用也比传统电话便宜,比如拨打中国大陆的价格为1美分/分钟,香港的价格为2美分/分钟,台湾市话:2美...
xargs - Linux里好用的工具
xargs
xargs原来意思是build and execute command lines frooom standarad input(stdin)
xargs把从stdin接受到的字串, 转成後面命令的参数, 来执行後面的命令.
为什麽讲这个命令呢?
之前介绍grep、sed、awk,
grep找到的内容可以给sed、awk直接读取
但若我是取出档名, 要给後两者读取其内容呢?
这时xargs可以帮忙处理
# 搜寻txt档案内容有it的, 显示其档名
grep -l 'it' *.txt
> aa.txt
> python.txt
# 透过xargs将档名当成sed的参数, 来执行sed
grep -l 'it' *.txt | xargs sed -n 's/it/ithome/p'
> baseurl=https://xxx/mysql-repo/yum/mysql-5.7-communithomey/el/$releasever/$basearch
> 13Th Ithome is my favorithomee active
转个思维表示;
系统内的日志也是能grep找出来含内容的档案, 再转给awk做格式转换制作表格後,
再输出到类似kibana等等的地方做储存展示.
也能是用grep转到执行自己写的程序, 将档名当成参数.
option介绍
xargs预设是用空格
做完分隔符号, 也就是说,
echo "aa.txt python.txt" | xargs sed -n 's/it/ithome/p'
> baseurl=https://xxx/mysql-repo/yum/mysql-5.7-communithomey/el/$releasever/$basearch
> 13Th Ithome is my favorithomee active
xargs会将"aa.txt python.txt"按照空格切成aa.txt、python.txt,
传给sed当参数sed -n 's/it/ithome/p' aa.txt python.txt
, 然後执行.
也能指定分隔符号, 透过-d
delimiter,
# 指定@为分隔符号
echo '11@22@33' | xargs -d '@' echo
> 11 22 33
也能指定EOF符号-E
, 表示读到EOF就不会再读取字串, 也不会去执行命令
ps 但无法跟上一个-d
一起混用
# 指定22为EOF, 因此33就不被读取, 22是不被拿去echo给执行去
echo '11 22 33' | xargs -E '22' echo
> 11
透过-t
verbose, 能把要执行的命令给输出出来, 并且执行该命令
# 能看到真正要执行的命令
grep -l 'it' *.txt | xargs -t sed -n 's/it/ithome/p'
> sed -n s/it/ithome/p aa.txt python.txt
> baseurl=https://xxx/mysql-repo/yum/mysql-5.7-communithomey/el/$releasever/$basearch
> 13Th Ithome is my favorithomee active
透过-p
interactive, 这命令就只是一个prompt, 询问是否要执行, 输入y/Y, 就真正执行该命令
通常会跟上一个-t
搭配使用
grep -l 'it' *.txt | xargs -tp sed -n 's/it/ithome/p'
# 会显示命令并且等待用户输入, 这里我输入y
> sed -n s/it/ithome/p aa.txt python.txt ?...y
> baseurl=https://xxx/mysql-repo/yum/mysql-5.7-communithomey/el/$releasever/$basearch
> 13Th Ithome is my favorithomee active
玩一下之前学到的,做组合拳
先开一个新的terminal, 挂着让它跑
ping -i 1 8.8.8.8
再开另一个terminal
然後透过ps找到这执行中的PID, 透过xargs传给kill执行
ps -ef | grep 'ping -i' | awk '{print $2}' | xargs -t kill -9
> kill -9 242585 242668
> kill: (242241): No such process
执行完, 原本持续在ping的process就会收到kill讯号而被kill.
这里用到之前的grep+awk
掌握这些基本也能, 做到说像是去redis找到key, 然後再去删除key
./redis-cli -h 127.0.0.1 -p 6381 -n 1 KEYS "ithome:*" | xargs ./redis-cli -h 127.0.0.1 -p 6381 -n 1 DEL
本日小结
很多组合的操作, 其实大多都能通过xargs中间转一手来处理.
因为不是每个工具都支持pipeline的使用,
有xargs就能让这些不支持的程序, 可以使用前一个命令完成之後的结果.
真的是个很方便的工具
----参考来源
鸟哥Linux私房菜 xargs
国内公司、香港公司、美国公司是目前绝大部分跨境卖家的身份选择。国内公司身份自然不必多说,90%+都是。香港和美国公司则少的多。但选择的人多并不表示国内公司就是最佳的经营跨境电商身份选择。 国内公司 首...
在深入探讨提高网站速度之前,让我们探讨一下为什么它对您的小型企业如此重要。 更快的网站意味着: 更好的用户体验 您的网站性能会影响用户的体验 - 当您的网站加载速度更快时,用户更有可能与之互动并花费更...
网站速度优化对于创造积极的用户体验至关重要。 积极的用户体验是快乐用户的营销代言词。 快乐的用户访问您的网站并购买东西。 不满意的用户离开是因为他们厌倦了等待您的网站加载。 营销人员称之为“跳出率”...
为什么网站速度很重要 到目前为止,您应该不需要说服网站速度对您的在线业务至关重要。 这是因为网站性能会影响您的品牌声誉、SEO 排名和转化率。 以下是发生这种情况的主要原因: 品牌口碑👍 老实说,当...