处理文本
grep
行首:^
行尾:$
. 代表任意一个字符(注意与通配符中的?区分)
主要是掌握正则表达式
Xargs
经常与管道配合使用。
echo --help| xargs echo 把前面的变成后面的选项
单独使用的时候可以把接受的数据一行输出。
xargs < num
不能直接跟文件名。需要重定向+文件名
echo 不支持对标准输入的数据输入
xargs -n 将标准输入的文本划分为多行,每行n个参数,默认使用空格分隔。
xargs -n 3 < num
-d 自定义分隔符。(与cut命令的-d相似)
默认分隔符是空格。
xargs -d:-n 2
xargs
是一个非常实用的Unix/Linux命令行工具,它的主要功能是构建并执行命令行指令。具体来说,xargs
从标准输入(stdin)读取数据,通常是文件名列表,然后将这些数据转换为命令行参数,用于执行另一个程序或命令。xargs
特别适用于处理大量数据或文件名的情况,它能够有效地将这些数据分批传递给其他命令。
以下是xargs
的一些关键特点和用途:
-
批量处理文件名:
xargs
能够接收通过管道(pipe)传入的一系列文件名,然后将它们作为参数传递给其他命令。这对于处理大量文件尤其有用,比如在搜索到的文件上运行某个操作。 -
避免命令行长度限制:直接使用
find
命令的-exec
选项在处理大量文件时可能会遇到命令行长度的限制。xargs
则可以通过分批执行命令来绕过这个限制。 -
灵活的参数控制:
xargs
提供了多种选项来控制如何处理输入数据,例如限制每批处理的文件数量、替换空格和制表符等。 -
与find命令结合使用:
xargs
经常与find
命令配合使用,find
用于查找文件,而xargs
用于对这些文件执行某种操作。例如,查找所有.txt
文件并删除它们,或者查找所有.jpg
文件并将它们压缩到一个归档文件中。
下面是一个使用xargs
和find
命令的示例:
find /path/to/search -name "*.txt" -print0 | xargs -0 rm
在这个示例中,find
命令查找所有扩展名为.txt
的文件,并使用-print0
选项以null字符分隔输出文件名,以避免文件名中包含空格或换行符的问题。然后,xargs
命令使用-0
选项读取null字符分隔的文件名,并将它们传递给rm
命令,从而安全地删除这些文件。
总之,xargs
是一个强大的工具,用于将一组数据转换为命令行参数,并能有效地管理这些参数的传递,尤其是在处理大量数据时。
cut
处理字符和文件常用命令。
-b以字节分割
cut -b 6=5 cutfile 选取每行第五个字节。
cut -b -5,10,14- cutfile 选取从开头到第五个字节,第十字节和从14字节开始到结束的三个部分。
-c 相当于-nb,用于多字节字符。
cut -d: -f 3-5 /etc/passwd
cat /etc/passwd | xargs -d:
wc
对文件内容进行统计命令
-c字节 -m字符统计 -l行统计 -w按照词统计
wc num
行数 词数 字节数 文件名
通常和其他命令通过管道
ls -l | wc -l 多出一行
sort
行排序以及多多个文件排序,并且首位相接显示到屏幕上。
sort -r 文件名 逆序
原来是顺序的。
文本比较
cmp
逐个字符比较
cmp 文件1 文件2 判断文件是否完全相同,返回第一个不同的地方。
comm
排序之后的文件进行逐行比较。
独有1 独有2 都具有
行比较长,文件宽度会不够用 可以使用-1 -2 -3来选择输出的列
diff
对两个文件进行逐行比较。告诉我们如何从第一个文件变为第二个文件
a -add
c -change
s -delete
<第一个文件内容
>第二个文件内容
执行压缩获打包
gzip
打包(备份)
gzip 扩展名.gz 压缩文件
原来的文件消失(把原始文件删除)
gzip -r ../gp把原始文件删除,文件逐个压缩。
其实win是压缩打包一起的。
解压缩:
gzip -d 文件名(不用带扩展名)
gzip -dr ../gp
tar
.tar
归档工具。源文件不会删除。
打开文件或者目录
tar -cvf file.tar filelist..
tar -cvf file.tar dirlist..
c:创建新文件 v:详细归档列表 f:归档文件或者归档设备
解包:
x:提取
tar -xvf file.tar
tar -xvf dir.tar
查看包内容
tar -tf file.tar
先打包再压缩。
tar -zcvf file.tar.gz filelist.. 打包+压缩
tar -xzvf file.tar.gz解包+解压缩
tar -tf gp.tar.gz
命令组合
管道:大数据量通信,是一个文件
一个进程的输出成为另外一个进程的输入,单向工作,FIFO
awk
sed
grep
分号是把前后命令按照顺序执行,把多行命令写成一行
&& 执行不成功为止
|| 执行成功为止