200 ? "200px" : this.width)!important;}
-->

介绍

我们可以利用管道将一个命令的“标准输出”作为另一个命令的“标准输入”;但是这里的标准输出都是数据流,但是某些命令的输入只接收参数命令不接收数据流,那么这种一般的方法就无法实现,这里就需要借助xargs命令。xargs可以将数据流转换成命令参数作为标准输入的参数,接下来就来详细了解xargs的用法。

多行转换

[root@localhost test]# cat test

在当前的test的表中有0-9的两行记录,每个数字间以空格隔开

1.单行显示,默认xargs会将换行符以空格替换

[root@localhost test]# cat test|xargs
         

2.多行显示,使用-n number参数

number值表示每行显示的参数的数量且number必须大于0,如果number大于参数的数量就以参数最大的数量显示,例如每行显示一个参数。

cat test|xargs -n 

界定符分隔

xargs可以以单个字符作为一段文本的分界符,将文本拆分成多个部分以空格隔开,但是分解符只能是单个字符,不能是组合字符。

1.根据字符拆分

echo "111a222a333a444" |xargs -d a

2.同时还可以结合-n参数拆分成多行显示

echo "111a222a333a444" |xargs -d a -n 

命令传参

接下来就可以看一下xargs怎样将标准输出数据流转换成命令参数

接下来就以一个简单的bash举例

#!/bin/bash
echo $* "end"

这个参数接收参数并返回原参数并以end作为行结尾

从上截图可以看出xargs将标准的输出作为参数传递给了bashtest

其它用法

当传递的命令存在多个参数而只需要给单独的某个参数传参数时,可以使用-I replace-str

vim bashtest

#!/bin/bash
echo $ $ "end"

我只需要将xargs的参数传递给$1

cat test|xargs -n  |xargs -I str  ./bashtest str a

注意:两边的replace-str的名称必须保持一致,名称不限。

总结

xargs的使用技巧还有很多,有兴趣可以去慢慢摸索

备注:

作者:pursuer.chen

博客:http://www.cnblogs.com/chenmh

本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接。

《欢迎交流讨论》

Linux xargs将输出数据流转换成命令参数的更多相关文章

  1. linux c/c++ IP字符串转换成可比较大小的数字

    由www.169it.com搜集整理 IP字符串转换成可比较大小的数字,具体代码如下所示: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include "stdio. ...

  2. linux环境下deb格式 转换成rpm格式

    linux环境下deb格式 转换成rpm格式 使用alien工具转换deb格式到rpm格式 alien_8.87.tar.gz 下载alien_8.87.tar.gz [root@mysqlnode2 ...

  3. linux环境php将word转换成pdf

    原文地址:http://www.niu12.com/article/15 ubuntu.java环境.openoffice.jodConverter.php 1.安装java环境 a. jdk下载(我 ...

  4. linux下如何将dts转换成dtb?

    答: 使用dtc工具,如: <kernel source code dir>/scripts/dtc/dtc -I dts -O dtb -o <dtb filename> & ...

  5. 在Linux下将HTML文件转换成PDF文件

    今天要写一个上交的作业,本来是想用Office Word来写的,但是,我的Office貌似不能用了,但是,Linux下的LibreOffice写出的文档,在打印的时候是经常出现乱码的.所以,后来想到可 ...

  6. xargs 将标准输入转换成命令行参数

    1. 命令功能 xargs 命令过滤器,接收管道或者标准输入传递的数据转换成xargs命令. 2. 语法格式 xargs [option] xargs  选项 参数 参数说明 -n 指定每行的最大参数 ...

  7. 怎样把Linux的私钥文件id_rsa转换成putty的ppk格式

    在Linux VPS下产生的私钥文件putty是不认识的,putty只认识自己的ppk格式,要在这两种格式之间转换,需要PuTTYgen这个程序. puttygen是putty的配套程序,putty的 ...

  8. php接收二进制数据流转换成图片

    <?php /** * 图片类 * @author Haroldphp@163.com * @version 1.0 * PHP默认只识别application/x-www.form-urlen ...

  9. dev gridcontrol把event事件转换成命令

    可以通过继承gridcontrol的形式来实现 定义DataGridDoubleClickCommand依赖属性 class MyGridControl : GridControl    {      ...

随机推荐

  1. linux bash 笔记

    Bash的简单使用笔记: 1- 命令行参数(调用脚本后面跟的参数) 2- 命令行选项(修改命令行为的单字符串) 3- 获取键盘输入 4- 读文件 5- 函数 1.命令行参数(调用脚本后面跟的参数) x ...

  2. java中获取路径的几种方式

    总是忘记, 备份一下,方便下次用. 第一种: File directory = new File("");//参数为空 String courseFile = directory. ...

  3. 深入研究C语言 第四篇

    这里更多探究的是指针的机制. 用debug对下面程序进行分析,记录每一条C语句运行后,相关内存单元的值. 程序a.c 注意理解指针机制 我们编写如下代码: 编译加载进debug查看: 我们先看其反汇编 ...

  4. (python) 标准模块sys和os的使用

    一.sys模块 包含了系统的相关的功能.我们来学习sys.argv,它包含命令行参数. 例子:定义了一个add函数,用来实现两个整数的相加. #! coding=utf-8 # usersys.py ...

  5. iOS基础之Xcode 8相关

    1.屏蔽日志输出 2.注释相关 注释不能使用:命令运行:  sudo /usr/libexec/xpccachectl  VVDocument方式注释快捷键:option + command + /

  6. js中创建数组的方法

    1.声明或创建一个不指定长度的数组(Array)的方式为: 如:var arrayObj = new Array(); 2.声明或创建一个数组并指定长度的数组(Array)的方式为: 如:var ar ...

  7. Java 第22章 mySQy

    下列都是关系型数据库(在数据库中存在行.列) oracle: Oracle公司的产品(被sun公司收购) 中大型项目使用.银行系统.政府办公系统 9i/10g/11g sql server: 微软公司 ...

  8. css3 2D动画的基本用法和介绍

    <style> body{height:400px;border:1px solid #000;} .box{width:90px;height:30px;border:1px solid ...

  9. SqlServer自动化分区

    1.新增文件组 ALTER DATABASE [Test] ADD FILEGROUP FG2010 ALTER DATABASE [Test] ADD FILEGROUP FG2011 ALTER ...

  10. HTML的ul和li标签的使用

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...