Linux命令值xargs和grep

本文介绍了Linux中常用的几个命令,包括xargs的文本内容处理,如单行输出、按行分组和自定义分隔符,以及组合其他命令的功能。同时讲解了grep用于查找特定字符串的用法,find命令根据名称和类型查找文件,以及wc命令统计文件的行数、单词数和字符数。最后提到了cat命令查看和显示文件内容的选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

博主github
博主个人博客http://blog.healerjean.com

1、xargs

1.1、文本内容相关

healerjean$ cat -n text.txt 
1	a b c d e f g
2	h i j k l m n
3	o p q
4	r s t
     
1.1.1、| xargs 单行输出文本所有内容
healerjean$ cat text.txt | xargs
a b c d e f g h i j k l m n o p q r s t
1.1.2、| xargs -n4 选择每行打印多少个(按照空格和换行来进行分组)
-n多行输出:后面直接加数字
healerjean$ cat text.txt | xargs -n4
a b c d
e f g h
i j k l
m n o p
q r s t

1.1.3、 | xargs -dX 分隔一串字符串
-d 选项可以自定义一个定界符:

healerjean$ echo "nameXnameXnameXname" | xargs -dX
 
name name name name

1.1.4、 -d -n 联合使用

echo "nameXnameXnameXname" | xargs -dX -n2
 
name name
name name

1.2、组合多个命令

1.2.1、(查询->删除)

删除vedio开头的键
keys vedio* | xargs redis-cli del

查询文件名为.svn的,然后删除
find . -name ".svn"| xargs rm -Rf 

删除镜像
docker images | grep registry.cn-qingdao.aliyuncs.com/duodianyouhui/dev-server | xargs docker rmi



2、grep

2.1、文本内容相关

2.1.1、查看某个字符串所在行的内容

healerjean$ grep a text.txt 
a b c d e f g

2.2、查询

healerjean$ find . -name '*.txt' |grep test
./study/cant-breathe/13、redis/7/1、spring redis/spring-redis-test.txt
./study/HealerJean.github.io/_posts/DDKJ/3、AngularJS_Vue/Vue/模板/element-starter/node_modules/hoek/test/modules/ignore.txt

3、find

3.1、-name 通过名字查询

-iname 不区分大小写
healerjean$ find . -name '*.txt' |grep test
./study/cant-breathe/13、redis/7/1、spring redis/spring-redis-test.txt
./study/HealerJean.github.io/_posts/DDKJ/3、AngularJS_Vue/Vue/模板/element-starter/node_modules/hoek/test/modules/ignore.txt

3.2、-type 根据文件类型查找(f文件,d目录,l软链接文件)

healerjean$ find . -type f -name "text.txt"
./text.txt
./workspace/duodianyouhui/youhui-admin/node_modules/vue-resource/test/data/text.txt

3.3 -print -print0

-print 在每一个输出后会添加一个回车换行符(默认),而-print0则不会直接连起来变成一行。

root@AaronWong shell_test]# find /ABC/ -type l -print
/home/AaronWong/ABC/libcvaux.so
/home/AaronWong/ABC/libgomp.so.1
/home/AaronWong/ABC/libcvaux.so.4


[root@AaronWong shell_test]# find /ABC/ -type l -print0
/home/AaronWong/ABC/libcvaux.so/home/AaronWong/ABC/libgomp.so.1/home/AaronWong/ABC/libcvaux.so.4/hom

4、wc 统计文件中的字节数、字数、行数

cat text.txt 
a b c d e f g
h i j k l m n
o p q
r s t

4.1、-l 统计行数

healerjean$ wc -l text.txt 
4 text.txt
       
  
healerjean$ cat text.txt| wc -l
4

4.2、-w 统计单词数量(不包含空格和换行等)

healerjean$ wc -w text.txt 
20 text.txt

4.3、-c 统计字符数(只显示Bytes数;)

healerjean$ wc -c text.txt 
40 text.txt

4.3、 wc 直接打印

分别打印行数,单词书,字符数

healerjean$ wc text.txt 
       4      20      40 text.txt

5、cat

5.1、直接查看文件内容

healerjean$ cat text.txt 
a b c d e f g
h i j k l m n
o p q
r s t

5.2、-n 显示内容与行数

healerjean$ cat -n text.txt 
1	a b c d e f g
2	h i j k l m n
3	o p q
4	r s t

ContactAuthor

xargs grepgrep在使用上有一些差别。 grep命令用于在文件中查找指定的字符串并显示匹配的行。例如,可以使用grep -r 'copy' ./ -n命令在当前目录及其子目录中查找包含'copy'字符串的行,并显示行号。 而xargs grep命令则是将grep命令xargs命令结合使用。xargs命令用于将标准输入数据转换成命令行参数,将多个参数传递给其他命令。通过使用xargs命令,可以实现对find命令等产生的结果集进行操作。例如,可以使用find命令查找符合条件的文件,并使用xargs grep命令在这些文件中查找指定的字符串。 另外,xargs命令还有一个缺陷,即默认使用空格作为参数的分隔符。这就意味着,如果文件名中包含空格,xargs命令可能无法正确处理。为了解决这个问题,可以使用-print0选项来指定以null作为分隔符,与-print0选项配合使用的xargs命令在处理文件名时会更可靠。 因此,总结起来,xargs grep命令是通过结合xargs命令grep命令来实现对文件中指定字符串的查找,而grep命令则是直接在文件中查找指定的字符串。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [linux系统编程笔记05——grepxargs](https://blog.youkuaiyun.com/demon_xi/article/details/109271054)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值