Shell xargs (转)

一直对xargs 命令不清不楚,今天看到一篇,通俗易懂,特转来记下·~

开关参数:多行并一行

cat example.txt # Example file
  1 2 3 4 5 6 
  7 8 9 10 
  11 12
  cat example.txt | xargs
  1 2 3 4 5 6 7 8 9 10 11 12

-n num:一行变多行,num是每行的个数
  cat example.txt | xargs -n 3
  1 2 3 
  4 5 6 
  7 8 9 
  10 11 12

-d:使用自定义界定符(delimiter)分割
  echo "splitXsplitXsplitXsplit" | xargs -d X
  split split split split

传递参数: INPUT | xargs –n X ,X是参数个数

args.txt文件:
    arg1
    arg2
    arg3
  cecho.sh文件:
    #!/bin/bash
    #Filename: cecho.sh
    echo $*‘#‘ 
  cat args.txt | xargs -n 1 ./cecho.sh #cecho.sh会被调用3次
  输出结果:
    arg1 #
    arg2 #
    arg3 #

与find一起使用时的问题:   find . -type f -name "*.txt"  -print | xargs rm -f  #xargs默认分隔符是" ",如果文件名是file name.txt时,xargs会出现分割错误,导致删除错误文件

必须使用find -print0参数使分隔符为\0,并且在xargs中使用-0参数指定分隔符为\0   find . -type f -name "*.txt" -print0 | xargs -0 rm -f

单独调用变量方法:

cat files.txt  | ( while read arg; do cat $arg; done )

时间: 2024-10-18 21:23:42

Shell xargs (转)的相关文章

Linux命令之 expand split xargs

expand # expand [-t] file 将 [tab] 按键转成空格键 选项与参数: -t     :后面可以接数字.一般来说,一个 tab 按键可以用 8 个空格键取代. [email protected]:~/shell# cat file1 John Dagget 341 King Road Plymouth Alice Ford 22 East Broadway Ricahmond [email protected]:~/shell# expand -t 4 file1 Jo

Linux Shell常用技巧(七) find xargs

Linux Shell常用技巧(七) find xargs 十六. 文件查找命令find: 下面给出find命令的主要应用示例:    /> ls -l     #列出当前目录下所包含的测试文件    -rw-r--r--. 1 root root 48217 Nov 12 00:57 install.log    -rw-r--r--. 1 root root      37 Nov 12 00:56 testfile.dat    -rw-r--r--. 1 root root 10530

linux shell脚本学习xargs命令使用详解

作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题 xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具.它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理.通常情况下,xargs从管道或者stdin中读取数据,但是它也能够从文件的输出中读取数据.xargs的默认命令是echo,这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代. xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传

shell学习四十五天----xargs

执行命令:xargs 当find产生一个文件列表时,该列表提供给另一个命令有时是很有用的. 案例: $touch abc.c erd.c oiy.c $ll ./erd.c ./abc.c ./oiy.c $find -name '*.c'| rm rm: 缺少操作数 请尝试执行"rm --help"来获取更多信息. $find -name '*.c'| xargs rm $find -name '*.c' 无任何显示,说明已成功删除. 1.简介,之所以能用到这个命令,关键是由于很多命

shell基础二:查找技巧,find及xargs的使用

使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的 (在有些操作系统中只允许- e x e c选项执行诸如l s或ls -l这样的命令).大多数用户使用这一选项是为了查找旧文件并删除它们.建议在真正执行r m命令删除文件之前,最好先用l s命令看一下,确认它们是所要删除的文件. e x e c选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号. 为了使用e x e c选项,必须要同时使用p r i n t选项.如果验

xargs在shell的执行不能为空需要先判断

PID=`jps -l | grep office |grep -v 'grep'| awk '{print $1}' | xargs`if [ "$PID" ]then echo "正在kill进程" kill -9 $PIDelse echo "没有进程需要kill"fi 原文地址:https://www.cnblogs.com/cheyunhua/p/12058460.html

xargs 原理&使用

1. 简介 之所以能用到这个命令,是由于很多 linux 命令不支持用管道传递参数,例如 find /sbin -perm +700 | ls -l 这个命令是错误的 find /sbin -perm +700 |xargs ls -l   这样才是正确的 通常Linux命令可以用|首尾相连,上一个命令的 stdout 连接到下一个命令的 stdin.但是有些命令,比如ls.rm等,是从命令行参数接受输入的.这时候如果想把上一个命令的输出传给它们,就不好办了.所以就有了xargs. 简单而言,x

Linux之进程管理及Shell脚本

使用!来调用过往命令 !! 重复执行上一条指令 !a 重复执行上一条以a为首的指令 !nubmer 重复执行上一条在history表中记录号码为number的指令 !-number重复执行前第number条指令 ailas abc='cd xxxxxxxxxxx/xxxxxxxx/xxxxxxxxxxxxx' unalias abc " "将一串字符当成字符串来看,可以转译特殊字符 ' '将一串字符当成字符串来看,无法转译特殊字符 ·能够返回命令执行的结果 echo `uname -a

Java面试12|Linux及Shell脚本

1.关于awk命令的面试题 (1)最近登录的5个帐号 last -n 5 | awk -F ':'(指定域分割符号) '{print $1}' -n表示number,有多少行需要显示.读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域.默认域分隔符是"空白键" 或 "[tab]键",所以$1表示登录用户,$3表示登录用户ip,以此类推. (2)用awk统计文本行数 awk '{count