百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Linux,shell,xargs命令,标准输入转为命令行参数,代码案例

ahcoder 2025-01-01 17:45 29 浏览

xargs命令

xargs

xargs,标准输入转为命令行参数,extended arguments,给命令传递参数的一个过滤器,也是组合多个命令的一个工具;

xargs,读取标准输入和管道中的数据,用于弥补命令不能从管道中读取数据的不足。

xargs命令参数

-n, 指定一次读取几个参数;
-d, 可以更改分隔符;
-p, 打印出要执行的命令;
-t, 打印出最终要执行的命令,直接执行;
-0, 数字零 用NULL当作分隔符;
-L, 指定多少行作为一个命令行参数;
-I, 指定每一项命令行参数的替代字符串;
--max-procs, 指定同时用多少个进程并行执行命令,max-procs被指定为0,xargs 将会尽可能的运行多个进程;
man xargs
# 查看版本
xargs --version
# 帮助
xargs --help
#
type xargs
which xargs
whereis xargs

案例代码

案例1:

#!/bin/bash

# xargs命令,将标准输入转为命令行参数
echo "hello world" | xargs echo
echo ..

# 写入文件
cat > words.txt <<'EOF'
张天师祈禳瘟疫 洪太尉误走妖魔
王教头死走延安府 九纹龙大闹史家村
史大郎夜走华阴县 鲁提辖拳打镇关西
赵员外重修文殊院 鲁智深大闹五台山
小霸王醉入销金帐 花和尚大闹桃花村
EOF

# 多行变单行
cat words.txt |xargs
echo ..
cat words.txt |xargs > words_one.txt

# 单行变多行
cat words_one.txt |xargs -n3
echo ..

# -d参数,更改分隔符为空格
echo -e "张天师,洪太尉,王教头,史大郎,鲁提辖,赵员外,小霸王" | xargs -d "," echo
echo ..
echo "张天师,洪太尉,王教头,史大郎,鲁提辖,赵员外,小霸王" | xargs -d "," echo

案例2:

#!/bin/bash

# 批量创建文件
echo "file1 file2 file3 file4 file5 file6" | xargs touch
# -p参数,打印出要执行的命令
# echo "file1 file2 file3 file4 file5 file6" | xargs -p touch
# -t参数,打印出最终要执行的命令,然后直接执行
echo 'file1 file2 file3 file4 file5 file6' | xargs -t rm
echo ..

# 批量创建文件
echo "file1 file2 file3 file4 file5 file6" | xargs touch
# 查找文件
find ./ -type f -name "file*"
echo ..
# 查找到文件并删除
find ./ -name "file*" | xargs rm -f
# find ./ -name "file*" | xargs -p rm -f

# 查找到文件
find ./ -type f -name "*.txt"
echo ..
# 查找到文件并打包
find ./ -type f -name "*.txt" | xargs tar zcvf my.tar.gz
# -p参数,打印出要执行的命令
# find ./ -type f -name "*.txt" | xargs -p tar zcvf my.tar.gz
echo ..
ls -l my.tar.gz

案例3:

#!/bin/bash

# 生成文件
cat /etc/passwd > passwd.txt

# 批量创建文件
echo "file1 file2 file3 file4 file5 file6" | xargs touch

# -0参数与find命令
find ./ -type f -name "file*" -print0
echo ""
echo ..
find ./ -type f -name "file*" -print0 | xargs -0 rm -f
echo ..

# 从检索到的文件中查找包含root的行
# find . -type 'f' -name '*.txt' | xargs grep 'root'
find . -type 'f' -name '*.txt' | xargs grep -n 'root'
echo ..

# -L参数,
# 进入交互式
# xargs -L 1 find -name

# 写入文件内容
cat > 1.txt <<-EOF
file1
file2
file3
file4
EOF

# 根据文件内容,打印并创建目录
# -I,每一项命令行参数的替代字符串
cat 1.txt | xargs -I item sh -c 'echo item; touch item'
echo ..

# 打印
find ./ -type 'f' -name "file*"

相关推荐

当 Linux 根分区 (/) 已满时如何释放空间?

根分区(/)是Linux文件系统的核心,包含操作系统核心文件、配置文件、日志文件、缓存和用户数据等。当根分区满载时,系统可能出现无法写入新文件、应用程序崩溃甚至无法启动的情况。常见原因包括:「日志文件...

linux系统监控工具小神器:btop(linux网络监控工具)

top是大家常用的实时系统监控工具,今天给大家介绍一款非常酷炫的实时系统监控工具btop,用了之后你一定会爱上它!btop是一个高级的实时系统监控工具,它是传统top命令的现代替代品,提供了丰富...

又一全新恶意软件曝光!专门针对Windows、Linux 和 macOS 用户

近日,网络安全研究人员发现了一个利用“CheanaStealer”恶意软件的复杂网络钓鱼活动,该恶意软件是通过一个VPN钓鱼网站传播的。这次攻击的主要目标是各种操作系统的用户,包括Wind...

Java程序员必备的Linux命令全解析

Java程序员必备的Linux命令全解析作为一名Java开发者,除了精通Java语法和框架外,掌握一些基础的Linux命令也是十分必要的。这不仅能提高你的工作效率,还能让你更好地管理和部署Java应用...

Linux基础知识之shell实现用户管理功能

[root@k8s-mastershell]#moreusermanager.sh#!/bin/bashRED='\033[0;31m'GREEN='\033[...

惊艳!Linux 中迷人的 Shell 脚本工具

如果您是Linux操作系统爱好者或正在将自己定义为一个爱好者,那么与shell脚本交叉的路径是完全不可避免的。根据定义,shell脚本是设计用于在Unix/Linuxshell环境中执...

【shell编程】你的第一个sh脚本(shell脚本编程教程)

vimhello.sh#!/bin/bash#注释echo-e"HelloWorld!\a\n"exit0第一行#!/bin/bash,作用是宣告这个文件内的语...

linux之bash、sh和dash(linux里bash命令)

linux系统里有sh、bash、dash等多种shell的解释器命令,其中sh是shll的缩写,是linux系统默认的shell解释器,bash则是sh命令的增强版,dash则是从netbsd派生而...

14、linux命令-du(linux命令-s)

14、linux命令-du常用命令du-sh/*#显示指定目录下每个文件或目录的容量大小,并且以易读方式显示(常用)。du命令概述du命令作用是估计文件系统的磁盘已使用量,常用于查看文件或目录...

Manjaro Linux:属于我的Linux体验

从Debiantesting切换回Manjarotesting前端使用好久的Manjarotesting切换到了Debiantesting,就是因为有一些包只有deb版本,适配了Debia...

小狼毫 0.17.0 更新,解锁输入新姿势!

0.17.0版本(2025年5月17日发布)这次更新可不少东西呢!先把librime升级到1.13.1版本啦,也不知道这升级之后会带来啥新变化,用用就知道咯。之前老是出问题的托...

Kali Linux 初始配置(kali linux2019默认用户名和密码)

1.更新源&升级系统sudoaptupdate&&sudoaptupgrade-ysudoaptdist-upgrade-y作用:确保所有工具和系统补丁为最新,避免...

怎样利用锤子手机和讯飞手机输入法,让电脑动起来

在大家看来,老罗的发布会捧红了科大讯飞。小编当时就被老罗洗脑了,立刻下载了讯飞输入法体验了一番。后来小编突发奇想,我经常使用向日葵远程控制电脑,如果远程控制电脑时使用讯飞,能否在电脑上完成语音输入?或...

装好KALI之后,急需做的两个事情,更新源和添加输入法

每次当我们装完系统之后,突然发现很茫然,为什么要装这个系统?也就是说我们压根儿就不知道装这个系统是为了做什么。而且刚装好的系统体验起来,好像也并没有网上说的那么好。之前想做的种种操作现在也就不了了之了...

Linux 依赖问题“硬核”解决方案 | 技术

编者按:本文介绍了一些另类的暴力破解RPM和DEB软件包依赖关系的方法,对陷入依赖陷阱而不可自拔的人来说,有时候这也是一种绝地求生之路。至于说这样做是否合适,那就是一件见仁见智的事情了,不过这...