Linux文本处理命令
sort
命令
sort
命令的功能是对文件中的各行进行排序。
sort
命令有许多非常实用的选项,这些选项最初是用来对数据库格式的文件内容进行各种排序操作的。实际上,
sort
命令可以被认为是一个非常强大的数据管理工具,用来管理内容类似数据库记录的文件。
Sort
命令将逐行对文件中的内容进行排序,如果两行的首字符相同,该命令将继续比较这两行的下一字符,如果还相同,将继续进行比较。
语法:
sort [
选项
]
文件
说明:
sort
命令对指定文件中所有的行进行排序,并将结果显示在标准输出上。如不指定输入文件或使用“
-
”,则表示排序内容来自标准输入。
sort
排序是根据从输入行抽取的一个或多个关键字进行比较来完成的。排序关键字定义了用来排序的最小的字符序列。缺省情况下以整行为关键字按
ASCII
字符顺序进行排序。
改变缺省设置的选项主要有:
- m
若给定文件已排好序,合并文件。
- c
检查给定文件是否已排好序,如果它们没有都排好序,则打印一个出错信息,并以状态值
1
退出。
- u
对排序后认为相同的行只留其中一行。
- o
输出文件
将排序输出写到输出文件中而不是标准输出,如果输出文件是输入文件之一,
sort
先将该文件的内容写入一个临时文件,然后再排序和写输出结果。
改变缺省排序规则的选项主要有:
- d
按字典顺序排序,比较时仅字母、数字、空格和制表符有意义。
- f
将小写字母与大写字母同等对待。
- I
忽略非打印字符。
- M
作为月份比较:“
JAN
”
<
“
FEB
”
- r
按逆序输出排序结果。
+
posl - pos2
指定一个或几个字段作为排序关键字,字段位置从
posl
开始,到
pos2
为止(包括
posl
,不包括
pos2
)。如不指定
pos2
,则关键字为从
posl
到行尾。字段和字符的位置从
0
开始。
- b
在每行中寻找排序关键字时忽略前导的空白(空格和制表符)。
- t separator
指定字符
separator
作为字段分隔符。
uniq
命令
文件经过处理后在它的输出文件中可能会出现重复的行。例如,使用
cat
命令将两个文件合并后,再使用
sort
命令进行排序,就可能出现重复行。这时可以使用
uniq
命令将这些重复行从输出文件中删除,只留下每条记录的唯一样本。
语法:
uniq [
选项
]
文件
说明:这个命令读取输入文件,并比较相邻的行。在正常情况下,第二个及以后更多个重复行将被删去,行比较是根据所用字符集的排序序列进行的。该命令加工后的结果写到输出文件中。输入文件和输出文件必须不同。如果输入文件用“
-
”表示,则从标准输入读取。
该命令各选项含义如下:
- c
显示输出中,在每行行首加上本行在文件中出现的次数。它可取代
- u
和
- d
选项。
- d
只显示重复行。
- u
只显示文件中不重复的各行。
- n
前
n
个字段与每个字段前的空白一起被忽略。一个字段是一个非空格、非制表符的字符串,彼此由制表符和空格隔开(字段从
0
开始编号)。
+n
前
n
个字符被忽略,之前的字符被跳过(字符从
0
开始编号)。
- f n
与
- n
相同,这里
n
是字段数。
- s n
与+
n
相同,这里
n
是字符数。
Linux备份与压缩命令
tar
命令
tar
可以为文件和目录创建档案。利用
tar
,用户可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。
tar
最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案,如软盘。利用
tar
命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。
Linux
上的
tar
是
GNU
版本的。
语法:
tar [
主选项
+
辅选项
]
文件或者目录
使用该命令时,主选项是必须要有的,它告诉
tar
要做什么事情,辅选项是辅助使用的,可以选用。
主选项:
c
创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。
r
把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。
t
列出档案文件的内容,查看已经备份了哪些文件。
u
更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
x
从档案文件中释放文件。
辅助选项:
b
该选项是为磁带机设定的。其后跟一数字,用来说明区块的大小,系统预设值为
20
(
20*512 bytes
)。
f
使用档案文件或设备,这个选项通常是必选的。
k
保存已经存在的文件。例如我们把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖。
m
在还原文件时,把所有文件的修改时间设定为现在。
M
创建多卷的档案文件,以便在几个磁盘中存放。
v
详细报告
tar
处理的文件信息。如无此选项,
tar
不报告文件信息。
w
每一步都要求确认。
z
用
gzip
来压缩
/
解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。
gzip
命令
减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。
gzip
是在
Linux
系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。
语法:
gzip [
选项
]
压缩(解压缩)的文件名
各选项的含义:
-c
将输出写到标准输出上,并保留原有文件。
-d
将压缩文件解压。
-l
对每个压缩文件,显示下列字段:
压缩文件的大小
未压缩文件的大小
压缩比
未压缩文件的名字
-r
递归式地查找指定目录并压缩其中的所有文件或者是解压缩。
-t
测试,检查压缩文件是否完整。
-v
对每一个压缩和解压的文件,显示文件名和压缩比。
-num
用指定的数字
num
调整压缩的速度,
-1
或
--fast
表示最快压缩方法(低压缩比),
-9
或
--best
表示最慢压缩方法(高压缩比)。系统缺省值为
6
。
unzip
命令
用
MS Windows
下的压缩软件
winzip
压缩的文件如何在
Linux
系统下展开呢?可以用
unzip
命令,该命令用于解扩展名为
.zip
的压缩文件。
语法:
unzip [
选项
]
压缩文件名
.zip
各选项的含义分别为:
-x
文件列表
解压缩文件,但不包括指定的
file
文件。
-v
查看压缩文件目录,但不解压。
-t
测试文件有无损坏,但不解压。
-d
目录
把压缩文件解到指定目录下。
-z
只显示压缩文件的注解。
-n
不覆盖已经存在的文件。
-o
覆盖已存在的文件且不要求用户确认。
-j
不重建文档的目录结构,把所有文件解压到同一目录下。
在Linux环境下运行DOS命令
Linux
系统提供了一组称为
mtools
的可移植工具,可以让用户轻松地从标准的
DOS
软盘上读、写文件和目录。它们对
DOS
和
Linux
环境之间交换文件非常有用。它们是不具备共同的文件系统格式的系统之间交换文件的有力手段。对于一个
MSDOS
的软盘,只要把软盘放在软驱中,就可以利用
mtools
提供的命令来访问软盘上的文件。
mtools
的主要命令如下:
mcd
目录名
改变
MSDOS
目录;
mcopy
源文件
目标文件
在
MSDOS
和
Unix
之间复制文件;
mdel
文件名
删除
MSDOS
文件;
mdir
目录名
显示
MSDOS
目录;
mformat
驱动器号
在低级格式化的软盘上创建
MSDOS
文件系统;
rnlabel
驱动器号
产生
MSDOS
卷标;
mmd
目录名
建立
MSDOS
目录;
mrd
目录名
删除
MSDOS
目录;
mren
源文件
目标文件
重新命名已存在的
MSDOS
文件;
mtype
文件名
显示
MSDOS
文件的内容。
提示:这些命令和对应的
MSDOS
命令非常相似。