当前位置: 首页 > news >正文

Xargs用法详解

Xargs用法详解

1. 简介

  之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了xargs命令,例如:

find /sbin -perm +700 |ls -l       这个命令是错误的

find /sbin -perm +700 |xargs ls -l   这样才是正确的

xargs 可以读入 stdin 的资料,并且以空白字元或断行字元作为分辨,将 stdin 的资料分隔成为 arguments 。 因为是以空白字元作为分隔,所以,如果有一些档名或者是其他意义的名词内含有空白字元的时候, xargs 可能就会误判了~他的用法其实也还满简单的!就来看一看先!

2. 选项解释

-0 当sdtin含有特殊字元时候,将其当成一般字符,想/'空格等

例如:root@localhost:~/test#echo "//"|xargs  echo 

      root@localhost:~/test#echo "//"|xargs -0 echo 

       /

-a file 从文件中读入作为sdtin,(看例一)

-e flag ,注意有的时候可能会是-E,flag必须是一个以空格分隔的标志,当xargs分析到含有flag这个标志的时候就停止。(例二)

-p 当每次执行一个argument的时候询问一次用户。(例三)

-n num 后面加次数,表示命令在执行的时候一次用的argument的个数,默认是用所有的。(例四)

-t 表示先打印命令,然后再执行。(例五)

-i 或者是-I,这得看linux支持了,将xargs的每项名称,一般是一行一行赋值给{},可以用{}代替。(例六)

-r no-run-if-empty 当xargs的输入为空的时候则停止xargs,不用再去执行了。(例七)

-s num 命令行的最好字符数,指的是xargs后面那个命令的最大命令行字符数。(例八)

 

-L  num Use at most max-lines nonblank input lines per command line.-s是含有空格的。

-l  同-L

-d delim 分隔符,默认的xargs分隔符是回车,argument的分隔符是空格,这里修改的是xargs的分隔符(例九)

-x exit的意思,主要是配合-s使用。

-P 修改最大的进程数,默认是1,为0时候为as many as it can ,这个例子我没有想到,应该平时都用不到的吧。

3. 应用举例

例一:

root@localhost:~/test#cat test 

#!/bin/sh

echo "hello world/n"

root@localhost:~/test#xargs -a test echo

#!/bin/sh echo hello world/n

root@localhost:~/test#

例二:

root@localhost:~/test#cat txt

/bin tao shou kun

root@localhost:~/test#cat txt|xargs -E 'shou' echo

/bin tao

root@localhost:~/test#

例三:

root@localhost:~/test#cat txt|xargs -p echo

echo /bin tao shou kun ff ?...y

/bin tao shou kun ff

例四:

root@localhost:~/test#cat txt|xargs -n1 echo

/bin

tao

shou

kun

root@localhost:~/test3#cat txt|xargs  echo

/bin tao shou kun

例五:

root@localhost:~/test#cat txt|xargs -t echo

echo /bin tao shou kun 

/bin tao shou kun

例六:

$ ls | xargs -t -i mv {} {}.bak

例七:

root@localhost:~/test#echo ""|xargs -t mv

mv 

mv: missing file operand

Try `mv --help' for more information.

root@localhost:~/test#echo ""|xargs -t -r  mv

root@localhost:~/test#

(直接退出)

例八:

root@localhost:~/test#cat test |xargs -i -x  -s 14 echo "{}"

exp1

exp5

file

xargs: argument line too long

linux-2

root@localhost:~/test#

例九:

root@localhost:~/test#cat txt |xargs -i -p echo {}

echo /bin tao shou kun ?...y

root@localhost:~/test#cat txt |xargs -i -p -d " " echo {}

echo /bin ?...y

echo tao ?.../bin

y

echo shou ?...tao

再如:

root@localhost:~/test#cat test |xargs -i -p -d " " echo {}

echo exp1

exp5

file

linux-2

ngis_post

tao

test

txt

xen-3

 ?...y

root@localhost:~/test#cat test |xargs -i -p echo {}

echo exp1 ?...y

echo exp5 ?...exp1

y

echo file ?...exp5

y

相关文章:

  • 我从编程教室毕业
  • 回归树|GBDT|Gradient Boosting|Gradient Boosting Classifier
  • Hack其实是一门好语言
  • 少走弯路,给Java 1~5 年程序员的建议
  • 如何让你的网站用discuz插件变的有力量
  • 图像搜索技术发展应知道
  • salesforce 零基础学习(二十一)workflow QA
  • Java程序员幽默爆笑锦集
  • spring3.1.0与junit4.5整合错误
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 深入理解JavaScript系列(26):设计模式之构造函数模式
  • CentOS6 PXE+Kickstart无人值守安装
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • lua闭包浅析及项目应用
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • 【面试系列】之二:关于js原型
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • Apache的80端口被占用以及访问时报错403
  • CentOS 7 防火墙操作
  • Docker: 容器互访的三种方式
  • JS实现简单的MVC模式开发小游戏
  • PHP CLI应用的调试原理
  • Python 反序列化安全问题(二)
  • spring boot下thymeleaf全局静态变量配置
  • 飞驰在Mesos的涡轮引擎上
  • 复习Javascript专题(四):js中的深浅拷贝
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 关于List、List?、ListObject的区别
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 记录:CentOS7.2配置LNMP环境记录
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 十年未变!安全,谁之责?(下)
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 因为阿里,他们成了“杭漂”
  • 云大使推广中的常见热门问题
  • 走向全栈之MongoDB的使用
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • 如何用纯 CSS 创作一个货车 loader
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​比特币大跌的 2 个原因
  • (26)4.7 字符函数和字符串函数
  • (4)logging(日志模块)
  • (pojstep1.3.1)1017(构造法模拟)
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (算法二)滑动窗口
  • ***通过什么方式***网吧
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .net 验证控件和javaScript的冲突问题
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...