xargs:将标准输入转化成命令行参数
功能说明
- 向其他命令传递命令行参数的一个过滤器,能够将管道或者标准输入的数据转化成xrags命令后的跟随的命令的命令行参数。
语法格式
xargs [option]
选项说明
参数选项 |
解释说明 |
-n |
指定每行的最大参数量n |
-d |
自定义分隔符 |
-i |
以{}代替前面的结果 |
-I |
指定一个符号来代替前面的结果 |
-p |
提示用户确认是否执行后面的命令 |
-0 |
用null代替空格作为分隔符 |
范例
#cat test.txt
1 2 3 4 5 6
7 8 9
10 11
[root@lhf2 17:47:17 /root/test]
#xargs < test.txt
1 2 3 4 5 6 7 8 9 10 11
#cat test.txt
1 2 3 4 5 6
7 8 9
10 11
[root@lhf2 17:48:11 /root/test]
#xargs -n 3 < test.txt
1 2 3
4 5 6
7 8 9
10 11
#echo askdkjasdXasdjalsdjXasdjqwX
askdkjasdXasdjalsdjXasdjqwX
[root@lhf2 17:49:10 /root/test]
#echo askdkjasdXasdjalsdjXasdjqwX | xargs -d X
askdkjasd asdjalsdj asdjqw
[root@lhf2 17:49:21 /root/test]
#echo askdkjasdXasdjalsdjXasdjqwX | xargs -d X -n 2
askdkjasd asdjalsdj
asdjqw
[root@lhf2 17:54:10 /root/test]
#ls
dir1 dir2 file1.txt file2.txt file3.txt file4.txt file5.txt test.txt
[root@lhf2 17:54:11 /root/test]
#find . -name "file*" |xargs -I [] cp [] dir2
[root@lhf2 17:54:53 /root/test]
#ls
dir1 dir2 file1.txt file2.txt file3.txt file4.txt file5.txt test.txt
[root@lhf2 17:54:55 /root/test]
#ls dir2/
file1.txt file2.txt file3.txt file4.txt file5.txt
#ls
hello world.txt
[root@lhf2 18:00:55 /root/test/dir1]
#find . -type f -name "*.txt" | xargs rm
rm: cannot remove ‘./hello’: No such file or directory
rm: cannot remove ‘world.txt’: No such file or directory
[root@lhf2 18:01:25 /root/test/dir1]
#find . -type f -name "*.txt" -print0| xargs -0 rm
[root@lhf2 18:01:52 /root/test/dir1]
#ls
网友评论