• xargs


    功能说明:向其他命令传递命令行参数的一个过滤器,能够将管道或者标准输入传递的数据转换成xargs命令后跟随的命令的命令行参数。
     
    选项说明:
    -n 指定每行的最大参数量,可以将标准输入的文本划分为多行,每行n个参数,默认为空五个分割。
    -d 自定义分隔符。
    -i 以{} 替代前面的结果。
    -I 指定一个符号替代前面的结果,而不用-i参数默认的 {} 。
    -p 提示让用户确认是否执行后的命令,y执行,n不执行。
    -0(数字0) 用null代替空格作为分隔符,配合find命令的 -print0选项的输出作用。
     
    范例1.多行输入变单行的例子
    [root@restoredb ~]# cat test.log 
    1 2 3 4 5 6
    7 8 9 
    10 11
    [root@restoredb ~]# xargs < test.log 
    1 2 3 4 5 6 7 8 9 10 11
     
    范例2.通过-n指定每行的输出个数的例子
    [root@restoredb ~]# cat test.log 
    1 2 3 4 5 6
    7 8 9 
    10 11
    [root@restoredb ~]# xargs -n 3 < test.log 
    1 2 3
    4 5 6
    7 8 9
    10 11
     
    范例3.自定义分隔符(使用-d功能)的例子
    [root@restoredb ~]# echo splitXsplitXsplitXsplitX
    splitXsplitXsplitXsplitX
    [root@restoredb ~]# echo splitXsplitXsplitXsplitX|xargs -d X 
    split split split split 
     
    [root@restoredb ~]# echo splitXsplitXsplitXsplitX|xargs -d X -n 2 
    split split
    split split
     
    范例4.参数-i 可以让{} 代替前面find命令找到的文件或目录
    find . -name "*.log" |xargs -i mv {} /tmp/
     
    范例5.参数-I 可以指定一个替换的字符串
    find . -name "*.log" |xargs -I [] cp [] /tmp
     
    范例6.结合find使用xargs的特殊案例
    首先模拟创建
    [root@restoredb temp]# ls
    [root@restoredb temp]# touch "hello word.txt" 
    [root@restoredb temp]# ls
    hello word.txt
    [root@restoredb temp]# touch hello everyone.txt
    [root@restoredb temp]# ll
    total 0
    -rw-r--r-- 1 root root 0 Jul 17 23:04 hello everyone.txt
    -rw-r--r-- 1 root root 0 Jul 17 23:04 hello word.txt
    使用常规方法,发现并不能删除
    [root@restoredb temp]# find . -type f -name "*.txt"|xargs rm 
    rm: cannot remove ‘./hello’: No such file or directory
    rm: cannot remove ‘word.txt’: No such file or directory
    rm: cannot remove ‘./hello’: No such file or directory
    rm: cannot remove ‘everyone.txt’: No such file or directory
    必须使用-0 选项,以字符null分割输出
    [root@restoredb temp]# find . -type f -name "*.txt" -print0|xargs -0 rm -f
    [root@restoredb temp]# ls
    [root@restoredb temp]# 
     
     
     
  • 相关阅读:
    JavaScript之DOM查询
    JavaScript之this解析
    Qt之pro文件解析
    Qt5 调试之详细日志文件输出(qInstallMessageHandler)
    修改 Ubuntu的源为阿里源
    Unable to acquire the dpkg frontend lock
    gcc编译中文字符串后,windows控制台输出乱码
    stm32f103 time2配置,转载
    取反
    单片机,struct ,union定义标志,节约RAM
  • 原文地址:https://www.cnblogs.com/l10n/p/9414668.html
Copyright © 2020-2023  润新知