# linux xargs 用法 {#linux-xargs-用法}
本文讲述 linux xargs 命令的用法。很多 linux 命令都会提供各种输入参数, 那么有没有简单的方法,实现批量执行这个命令(而执行的每个命令的输入参数已经在一个文本文件中写好)。当然有方法了,那就是 xargs。
重要参数:
-
-I 用来指定接收参数的符号,如{}
-
-t 打印xargs后执行的命令
# 1. 批量修改文件名 {#_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. 每行首尾补充内容 {#_2-每行首尾补充内容}
cat ./file | xargs -I '{}' echo 行首内容{}行尾内容
当然,您可以仅对行首或行尾补充内容