linux之xargs使用技巧

Posted 入门小站

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux之xargs使用技巧相关的知识,希望对你有一定的参考价值。

xargs基本用法

# grep命令接受管道传参
> cat /etc/passwd | grep root

# echo命令不接受管道传参
> echo "hello rumenz" | echo

# 将标准输入转为命令行参数
> echo "hello rumenz" | xargs echo
hello rumenz

需要注意的是 xargs 后面的默认跟的是 echo 命令,所以它可以单独使用。

-d指定分隔符,默认使用空格分割

# 空格作为分隔符
$ echo "one two three" | xargs mkdir

# 指定制表符\\t作为分隔符
$ echo -e "a\\tb\\tc" | xargs -d "\\t" echo
a b c

-p 打印出要执行的命令并询问用户是否要执行

> echo one two three | xargs -p touch
touch one tow three ?...y

-0 表示用 null 当作分隔符

> find /path -type f -print0 | xargs -0 rm

指定多少行作为一个命令行参数

> xargs -L 1 find -name
"*.txt"
./1.txt
./rumenz.txt
./2.txt
./3.txt

-n指定每次将多少项作为命令行参数

> echo 0..9 | xargs -n 2  echo 

指定每一项命令行参数的替代字符串

# 将命令行参数传给多个命令
> cat foo.txt
one
two
three

> cat foo.txt | xargs -I  sh -c echo ; mkdir 
one
two
three

> ls
one two three

将多行输入转换成单行输入

> cat rumenz.txt
1 2 3 4
5 6
7 8 9
> cat rumenz.txt | xargs
1 2 3 4 5 6 7 8 9

将单行文本转换成多行

> cat rumenz.txt
1 2 3 4 5 6 7 8 9
> cat rumenz.txt | xargs -n 3
1 2 3
4 5 6
7 8 9

指定分隔符进行行转换

> echo "rumenz:123:rumenz:456:rumenz:789" | xargs -d : -n 2
rumenz 123
rumenz 456
rumenz 789

xargs和find结合

> find . -type f -name "*.txt" -print | xargs rm -f

批量下载文件

> cat rumenz.txt | xargs wget -c

原文链接:https://rumenz.com/rumenbiji/linux-xargs-skills.html
微信公众号:入门小站

  • 回复【1001】获取 linux常用命令速查手册
  • 回复【10010】获取 阿里云ECS运维Linux系统诊断
  • 回复【10012】获取 Linux学习笔记【强悍总结值得一看】
  • 回复【10013】获取 shell简明教程

以上是关于linux之xargs使用技巧的主要内容,如果未能解决你的问题,请参考以下文章

Linux基本命令之xargs

linux之xargs

每天一个Linux命令(21)--find命令之xargs

Linux命令简介之xargs

每天一个 Linux 命令(21):find命令之xargs

Linux之find xargs