Linux(入门基础):67---其他管道命令(wc、split、xargs)
一、显示行数、字数、字符数命令:wc
1.功能
- 可以所处理数据的行数、字数、字符数
2.命令格式
- wc [参数]
相关参数
- -l:仅列出行数
- -w:仅列出多少字数
- -m:仅列出多少字符
3.注意事项
- 不加任何参数时,行数、字数、字符数都列出来。顺序依次为:行数、字数、字符数
4.演示案例
- 列出行数、字数、字符数
- 列出行数、字数
- last中有很多与账户无关的行。我们指向要有账号信息的那几行,并列出有多少行
二、划分命令:split
1.功能
- 可以对文件进行划分,将一个大文件划分为多个小文件
- 划分的方式分为:依据文件大小划分和依据文件行数划分
2.命令格式
- split [参数] 被划分的文件 生成的文件前缀名
相关选项与参数
- -b:后面划分之后,每个文件的大小。单位:b、k、m等
- -l:以行数来划分文件
3.注意事项
- 划分之后的文件,文件前缀名为xx,则文件的名字格式为:xxxaa、xxxab、xxxac
4.演示案例
- 案例一:将files划分为多个文件,每个文件300k,这些文件的后缀名files
split -b 300k ./files files
划分之后将这个这些文件写入到filesback中
cat filesa* >> filesback
- 案例二:利用ls输出信息,每10行记录成一个文件,文件名前缀为lsroot。使用wc查看这些文件中的行数
ls -al / | split -l 10 - lsroot
wc -l lsroot*
三、参数代换命令:xargs
1.功能
- 我们知道一个命令执行时,需要一些参数,例如:文件名,路径,文字信息等...
- xargs就代表上面那些命令执行时所需要的参数,这些参数来自于|前面的stdin。配合|使用
2.注意事项
- 因为xargs读入的是stdin的数据,并且以空格符或换行符作为标识符,将stdin的数据分割成参数。因此:如果有一些文件名或者是其他意义的名词内含有空格符的时候,xargs就会误判
3.命令格式
- xargs [参数] 命令
相关选项与参数
- -0:如果输入的stdin含有特殊字符时“`”、“\”、空格等时,这-0参数,可以将它还原成一般字符
- -e:这是“EOF”的意思,后面接一个字符,当xargs分析到这个字符的时候,就会停止工作
- -p:每次一次,都会询问执行者
- -n:后面接次数,代表每次命令执行时,需要几个参数的意思
4.演示案例
- 案例一:我们使用cut命令分割/etc/passwd文件的信息,得到第一栏的用户名并配合head取前三行,然后将这些用户名传给id命令查看。id命令每次只能接受一个参数
- 错误案例①:因为id每次只能接受一个参数,所以用cut截取并用head得到前三行,会有三个参数传给id,所以执行这条命令会出错
- 错误案例②:因为id不是管道命令,所以处理到id的时候,只执行id命令,前面的命令全部都没了
- 错误案例③:xargs可以代表前面传来的stdin,即三个用户名,也就是三个参数。但是id每次只能执行一个参数,所以仍然会出错
- 正确案例:前面用cut和head得到了三个用户名,这三个用户名作为stdin传给后面的xargs,xargs配合-n参数每次传给id一个参数,因此id就能够处理
- 案例二:承上面的正确案例。每次执行时询问执行者
- 案例三:承上,将/etc/passwd的账号都用id查看,但是查看到sync的时候就停止。图一和图二比较,可以看到刚好执行到那一行停止了
- 案例四:将/usr/sbin下面有特殊权限的文件进行查看