• N天学习一个linux命令之xargs


    用途

    标准输入流读取参数(空格或者换行符分隔),传递给需要执行的命令

    用法

    xargs [options] [command [initial-arguments]]

    常用选项

    --arg-file=file
    -a file

    从文件中读取参数

    --null
    -0

    空字符作为分隔符,当参数中包含空格或者换行符时使用

    --delimiter=delim
    -d delim

    指定参数分隔符

    --max-args=max-args
    -n max-args

    设置传递的参数个数

    --interactive
    -p

    显示交互提示

    --no-run-if-empty
    -r

    参数为空时不执行

    --verbose
    -t

    打印执行的命令信息

    --version

    显示命令版本信息

    --max-procs=max-procs
    -P max-procs

    设置可执行的最大进程,默认是1,0表示不限制

    -I replace-str

    用参数替换命令初始参数占位符


    实践

    1.文件中读取参数
    [root@vm ~]# xargs -a t.log echo
    a b

    2.参数空字符分隔
    [root@vm ~]# xargs -0 -a t.log echo
    a
    b

    3.指定参数分隔符
    [root@vm ~]# echo 'b##cc' >> t.log
    [root@vm ~]# xargs -a t.log -d '#' echo
    a
    b
    b cc

    4.设置每次传递一个参数且执行命令前提示
    [root@vm ~]# xargs -a t.log -n 1 -p echo
    echo a ?...y
    echo b ?...a
    y
    echo b##cc ?...b
    y
    b##cc

    5.删除/tmp目录下文件名为core的文件
    a.文件名没有包含特殊字符(空格,换行符)
    [root@vm ~]# find /tmp -name core -type f -print | xargs /bin/rm -f
    [root@vm ~]#
    b.文件名包含特殊字符(空格,换行符)
    [root@vm ~]# find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f
    [root@vm ~]#

    6.替换命令初始参数占位符
    [root@vm ~]# xargs -a t.log -n 1 -I '{}' echo '{}'
    a
    b
    b##cc


    参考资料

    【1】man xargs

  • 相关阅读:
    dynamic load jar and init spring
    maven-assembly-plugin
    URL to load resources from the classpath in Java
    maven plugins
    URL加载jar
    spring自定义xml标签&自定义注解
    有序表查找---插值查找
    有序表查找---折半查找算法
    基本查找算法---顺序表查找
    图的基础---关键路径理解和实现(Java)
  • 原文地址:https://www.cnblogs.com/wadeyu/p/8253151.html
Copyright © 2020-2023  润新知