文本处理

文本排序 sort(字典顺序)

  1. -n 按数值大小排序
  2. -u 对排序后相同的行只保留一行
  3. -r 按逆序输出排序结果

对文件file1以倒序形式排序并显示在屏幕上

sort –r file1或 cat file1 | sort -r

对文件file1排序并删掉重复的行

sort –u file1   或 cat file1 | sort -u

对数值文件file2按数值从小到大进行排序

sort –n file2 或 cat file2 | sort -n

文本去重 uniq

  1. -d 只显示重复行
  2. -u 只显示不重复行
  3. -c 显示重复出现的次数

使用uniq命令对文件file1去重后输出

sort  file1 | uniq

查看文件file1中重复的数据内容

sort  file1 | uniq -d

查看文件file1中不重复的数据内容

sort  file1 | uniq -u 来显示当前工作目录的

文本查找 grep

grep [选项] [字符串] 文件名
  1. -c 只显示匹配的行数
  2. -l 忽略字母大小写
  3. -n 输出时加行号
  4. -v 反转查找

在/etc/adduser.conf文件中,查找含有adduser字符的行

grep adduser /etc/adduser.conf

在adduser.conf文件中,查找不含"#"的行并列出行号

grep -vn "#" /etc/adduser.conf

在adduser.conf文件中,查找含有adduser字符的行数

grep -c  adduser  /etc/adduser.conf

文本剪切 cut

 cut -f List -d Character 文件
-f 获取被定界符隔开后指定的字段列表 `f代表field`
 -d 指定分隔字符 `d代表delimeter`

将 PATH 变量值取出,使用cut命令找出第五个路径

$echo $PATH
/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/X11/bin:/usr/games:
# 1 |    2    |    3       |  4       |     5       |     6          |    7
echo $PATH | cut -d ':' -f 5

列出第3与第5

echo $PATH | cut -d ':' -f 3,5

获取 export 命令输出信息的第 12 字符以后的内容

export | cut -c 12-

取12-20个字符

cut -c 12-20

显示文件/etc/passwd中的用户登录名和用户名全称字段

cut –f 1,5 –d : /etc/passwd

文本比较 diff

diff [选项] 文件1 文件2
  1. -c 以context模式显示比较的结果,相对normal
  2. -y 以并列的方式显示文件的异同之处
  3. -w 与选项-y一起使用,指定列宽

diff命令--context模式

diff -c file1 file2

文件查找

find 在硬盘上查找文件或目录

在当前目录下,查找属于user01用户的文件和目录

find . -user user01

查找当前目录及其子目录下所有最近2天内更新过的文件

find . -ctime -2

locate 后台数据库中按文件名搜索

-n 显示查找结果的个数

查找前3个文件passwd所在位置

locate -n 3 passwd
  1. 对于刚建立的文件,立即使用locate进行查找将会搜索不到所创建的文件,因为后台数据库一天更新一次;
  2. 若想使刚创建的文件能被立即搜索到,必须以root登陆,然后运行updatedb命令更新数据库。

查找指定文件位置: whereis

  1. -b 只查找二进制文件
  2. -m 只查找说明文件
  3. -s 只查找源代码文件

文件压缩

gzip

  1. -c 将输出写到标准输出上,并保留原有文件
  2. -d 将压缩文件解压
  3. -r 递归式地查找指定目录并压缩,解压缩

用gzip命令将/home/lisi目录下的文件压缩

# gzip /home/lisi/*

用命令将/home/lisi目录下所有的.gz文件解压缩

# gzip -d /home/lisi/*
# gunzip /home/lisi/*

bzip2(压缩效果略好于gzip)

  1. -d 解压缩选项
  2. -v 显示压缩或解压缩的过程
  3. -f 当文件重名时,进行覆盖

使用bzip2命令压缩/home/lisi/目录下的文件

# bzip2 /home/lisi/*

使用bzip2命令解压缩/home/lisi/目录下的文件

# bzip2 -d /home/lisi/*

tar包

将多个文件或目录打包成一个文件

  1. -z 用gzip命令进行压缩/解压缩
  2. -j 通过bzip2命令进行压缩/解压缩
  3. -C 指定解压目录
  4. -c (压缩)创建新的备份文件,备份目录或文件时必选项(压缩)
  5. -f 对普通文件进行操作(必选)
  6. -r 向备份档文件追加文件
  7. -x (解压缩)从备份档文件中解出文件
  8. -t 列出备份文档中所含的文件
  9. -v 列出处理过程中的详细信息

把/boot目录下文件和子目录打包,打包文件名为usr.tar

# tar -cvf usr.tar /boot

把/boot目录下文件和子目录打包,并用gzip算法进行压缩,文件名为usr.tar.gz

# tar -zcvf usr.tar.gz /boot

把usr.tar.gz这个打包文件还原并解压缩

# tar -zxvf usr.tar.gz

把/boot目录下的文件和子目录打包,并用bzip2算法进行压缩,文件名为usr.tar.bz2

# tar -jcvf /boot usr.tar.bz2

把usr.tar.bz2解压缩到目录/tmp

# tar -jxvf usr.tar.bz2 -C /tmp

查看usr.tar备份文件的内容,并显示在显示器上

# tar -tvf usr.tar

将文件/root/abc/d添加到usr.tar包里面去

# tar -rvf usr.tar /root/abc/d

tar参考