linux xargs用法
# linux xargs 用法
本文讲述 linux xargs 命令的用法。很多 linux 命令都会提供各种输入参数, 那么有没有简单的方法,实现批量执行这个命令(而执行的每个命令的输入参数已经在一个文本文件中写好)。当然有方法了,那就是 xargs。
重要参数:
-I 用来指定接收参数的符号,如{}
-t 打印xargs后执行的命令
# 1. 批量修改文件名
- 准备要修改的文件
(py3.6) wangshibiao@wangshibiao:~/test/testxargs$ ll
总用量 12
drwxrwxr-x 2 wangshibiao wangshibiao 4096 8月 7 17:01 ./
drwxrwxr-x 25 wangshibiao wangshibiao 4096 8月 7 16:59 ../
-rw-rw-r-- 1 wangshibiao wangshibiao 0 8月 7 16:59 file1.disable
-rw-rw-r-- 1 wangshibiao wangshibiao 0 8月 7 16:59 file2.disable
-rw-rw-r-- 1 wangshibiao wangshibiao 0 8月 7 16:59 file3.disable
(py3.6) wangshibiao@wangshibiao:~/test/testxargs$
- 首先指定文件名的修改规则
该规则可以定义在一个文本文件中
(py3.6) wangshibiao@wangshibiao:~/test/testxargs$ cat ./file-rename-rule
./file1.disable ./file1
./file2.disable ./file2
./file3.disable ./file3
(py3.6) wangshibiao@wangshibiao:~/test/testxargs$ ll
总用量 12
drwxrwxr-x 2 wangshibiao wangshibiao 4096 8月 7 17:01 ./
drwxrwxr-x 25 wangshibiao wangshibiao 4096 8月 7 16:59 ../
-rw-rw-r-- 1 wangshibiao wangshibiao 0 8月 7 16:59 file1.disable
-rw-rw-r-- 1 wangshibiao wangshibiao 0 8月 7 16:59 file2.disable
-rw-rw-r-- 1 wangshibiao wangshibiao 0 8月 7 16:59 file3.disable
-rw-rw-r-- 1 wangshibiao wangshibiao 72 8月 7 17:01 file-rename-rule
(py3.6) wangshibiao@wangshibiao:~/test/testxargs$
- 将文本文件的内容交给 xargs 处理
执行一个命令即可完成文件名修改操作
(py3.6) wangshibiao@wangshibiao:~/test/testxargs$ cat ./file-rename-rule | xargs -t -n 2 sh -c 'mv $0 $1'
sh -c mv $0 $1 ./file1.disable ./file1
sh -c mv $0 $1 ./file2.disable ./file2
sh -c mv $0 $1 ./file3.disable ./file3
(py3.6) wangshibiao@wangshibiao:~/test/testxargs$ ll
总用量 12
drwxrwxr-x 2 wangshibiao wangshibiao 4096 8月 7 17:03 ./
drwxrwxr-x 25 wangshibiao wangshibiao 4096 8月 7 16:59 ../
-rw-rw-r-- 1 wangshibiao wangshibiao 0 8月 7 16:59 file1
-rw-rw-r-- 1 wangshibiao wangshibiao 0 8月 7 16:59 file2
-rw-rw-r-- 1 wangshibiao wangshibiao 0 8月 7 16:59 file3
-rw-rw-r-- 1 wangshibiao wangshibiao 72 8月 7 17:01 file-rename-rule
(py3.6) wangshibiao@wangshibiao:~/test/testxargs$
# 2. 每行首尾补充内容
cat ./file | xargs -I '{}' echo 行首内容{}行尾内容
当然,您可以仅对行首或行尾补充内容
上次更新: 2021-01-29 16:25:58