0%

xargs命令处理多参数

xargs单参数

xargs通常我们用来处理流数据,比如说批量kill python脚本,或者批量删除文件

1
2
ps aux|grep python|awk '{print $2}'|xargs kill
find . -name "*.log"|xargs rm -rf

xargs多参数

通常情况下我们用xargs处理一个参数即可,但是有时候我们需要批量重命名或者批量改后缀。我们则需要深入的了解xargs
-t 输出当前运行的命令
-I 表示把当前处理的参数用{}表示,这样后续的命令可以用{}来处理。

1
2
# 批量改后缀
find . -name "*.txt"|awk -F'.txt' '{print $1}'|xargs -t -I {} cp {}.txt {}.log
  • 批量改后缀的结果输出如下
cp ./1.txt ./1.log
cp ./2.txt ./2.log
cp ./3.txt ./3.log
1
2
# 踢掉正在线上的所有用户
who|awk '{print $2}'|xargs -t -I {} pkill -kill -t {}
  • 批量踢掉正在线上的所有用户的输出如下
pkill -kill -t pts/0
pkill -kill -t pts/2
pkill -kill -t pts/3
pkill -kill -t pts/4
pkill -kill -t pts/5
pkill -kill -t pts/6
pkill -kill -t pts/7
pkill -kill -t pts/8
pkill -kill -t pts/9
pkill -kill -t pts/10
pkill -kill -t pts/11
pkill -kill -t pts/12
pkill -kill -t pts/13
pkill -kill -t pts/14
pkill -kill -t pts/15
pkill -kill -t pts/16
pkill -kill -t pts/17
pkill -kill -t pts/18
pkill -kill -t pts/19