Linux下文件操作命令

参考:

http://blog.sina.com.cn/s/blog_6bd7d9430101504l.html


sort 命令:
Linux的sort命令就是一种对 文件排序的工具,sort命令的功能十分强大,是Shell脚本编程时常用的文件排序工具;
sort命令与awk一样,将 文件看作 记录和域进行处理,默认的域分隔符是空格符,sort命令的格式为:
sort [选项] [输入文件]
选项 意义
-c 测试文件是否已经被排序   complete
-k 指定排序的域   k1   k2nr往后加命令即可
-m 合并两个已排序的文件   merge
-n 根据数字大小进行排序   number
-o [输出文件] 将输出写到指定的文件,相当于将输出重定向到指定文件  open
-r 将排序结果逆向     reverse
-t 改变域分隔符   eg:-t:   一般最新定义
-u 去除结果中的重复行     unique  -u

uniq 命令
uniq命令用于去除文本文件中的重复行,这类似于sort命令的-u选项
sort -u命令时,所有重复记录都被去掉
uniq命令去除的重复行必须是 连续重复出现的行 中间不能夹杂任何其他文本行

选项 意义
-c 打印每行在文本中重复出现的次数   count
-d 只显示有重复的记录,每个重复记录只出现一次   
-u 只显示没有重复的记录   unique

join 命令
join--- 实现两个文件中记录的连接操作 连接操作将两个文件中具有相同域的记录选择出来,再将这些记录所有的域放到一行(包含来自两个文件的所有域)
join [选项]文件1 文件2
选项 意义
-a1或-a2除了显示以共同域进行连接的结果外,-a1表示还显示第1个文件中没有共同域的记录,-a2则表示显示第2个文件中没有共同域的记录
-i 比较域内容时,忽略大小写差异
-o 设置结果显示的格式
-t 改变域分隔符
-v1或-v2   跟-a选项类似,但是,不显示以共同域进行连接的结果

-1和-2 -1用于设置文件1用于连接的域,-2用于设置文件2用于连接的域
当两个文件进行连接时,文件1中的记录可能在文件2中找不到共同域,反过来,文件2中也可能存这 样的记录,join命令的结果默认是不显示这些未进行连接的记录的
-a和-v选项就是用于显示这些未进行连接的记录,-a1和-v1指显示文件1中的未连接记录,而-a2和-v2指显示文件2中的未连接记录
-a和-v选项的区别在于: -a选项显示以共同域进行连接的结果,而 -v选项则不显示这些记录

当两个文件进行连接时,文件1中的记录可能在文件2中找不到共同域,反过来,文件2中也可能存在这样的记录,join命令的结果默认是不显示这些未进行连接的记录的
-a和-v选项就是用于显示这些未进行连接的记录,-a1和-v1指显示文件1中的未连接记录,而-a2和-v2指显示文件2中的未连接记录
-a和-v选项的区别在于:-a选项显示以共同域进行连接的结果,而-v选项则不显示这些记录

join命令默认显示连接记录在两个文件中的所有域,而且是按顺序来显示的。-o选项用于改变结果显示的格式
join命令 默认比较文件1和文件2的 第1域,如果我们需要通过其他域进行连接,就需要使用 -1和-2选项,-1用于设置文件1用于连接的域,-2用于设置文件2用于连接的域
join -t: -i -1 3 -2 1 TEACHER1.dbTEACHER_HOBBY.db 

cut 命令
cut命令用于从标准输入或文本文件中按域或行提取文本
选项 意义
-c 指定提取的字符数,或字符范围   count
-f 指定提取的域数,或域范围   field
-d 改变域分隔符    
cut -c1-5 TEACHER.db
cut -d: -f1,4 TEACHER.db
cut -d: -f1-3 TEACHER.db

paste 命令
paste命令用于将文本文件或标准输出中的内容 粘贴到新的文件,它可以将来自于不同文件的数据粘贴到一起,形成新的文件
paste  [选项] 文件1文件2
选项 意义
-d 默认域分隔符是空格或Tab键,设置新的域分隔符
-s 将每个文件粘贴成一行
- 从标准输入中读取数据

paste命令的“-”选项比较特殊,当paste命令从标准输入中读取数据时,“-”选项才起作用
eg:[root@jselab shell-book]# ls | paste-d" " - - - - -                   #从标准输入读取数据
anotherres.sh array_eval2.sh colon.sh example execerr.sh          #每行显示5个文件名
execin.sh exec.sh FILE1 FILE2 forever.sh
hfile loggg loggg1 loopalias.sh matrix.sh
newfile nokillme.sh part1 part2 part3
parttotal refor.sh reif.sh selfkill.sh sleep10.sh
sleep55.sh stack.sh subsenv.sh subsep.sh subsig.sh
subsparallel.sh subspipe.sh subsvar.sh TEACHER.dbtest.sh
testvar.sh traploop.sh

split 命令
split命令用于将大文件切割成小文件,split命令可以按照文件的行数、字节数切割文件,并能在输出的多个小文件中自动加上编号
split  [选项] 待切割的大文件输出的小文件

选项 意义
-或-l 此两个选项等价,都用于指定切割成小文件的行数
-b 指定切割成小文件的字节
-C 与-b选项类似,但是,切割时尽量维持每行的完整性

tr 命令
tr命令实现 字符转换功能,其功能类似于 sed命令,但是,tr命令比sed命令简单
tr命令能实现的功能,sed命令都可以实现
tr [选项] 字符串1 字符串2<输入文件
tr命令要么将 输入文件重定向到标准输入,要么从 管道读入数据,记住tr命令的输入文件之前需要加上“ <”符号
选项 意义
-c 选定字符串1中字符集的 补集,即反选字符串1中的字符集
-d 删除字符串1中出现的所有字符
-s 删除所有 重复出现的字符序列,只保留一个

tr命令的-d选项只需跟一个字符串,它表示删除字符串中出现的所有字符
tr -d A-Z <AREACODE .db
tr命令的-s选项用于删除所有重复出现的字符序列,只保留一个,即将重复出现的字符串压缩为一个字符spress
tr -s "[a-z],[A-Z]" <AREACODE.db
tr命令也可以加上字符串1和字符串2,将字符串1用字符串2来 替换
tr "[a-z]" "[A-Z]"<AREACODE
tr命令的-c选项用于选定字符串1中字符集的补集,即反选字符串1中的字符集contract
tr -cs "[a-z][A-Z]" "[\012*]" <AR

tar 命令
tar命令是Linux的 归档命令 tar命令可以将文件或目录打成一个
tar [选项] 文件名或目录名
选项 意义
-c 创建新的包   create
-r 为包添加新的文件   refresh
-t 列出包内容    
-u 更新包中的文件,若包中无此文件,则将该文件添加到包中  
-x 解压缩文件  
-f 使用压缩文件或设备,该选项通常是必选的   file
-v 详细报告tar处理文件的信息     view
-z 用gzip压缩和解压缩文件,若加上此选项创建压缩包,   gzip
那么解压缩时也需要加上此选项

-f是必选选项,-c选项用于创建包
tar -cf db.all *.db
-r选项可将文件添加到包
-t选项用于查看包的内容
tar -tf db.all

tar命令的另一重要功能就是解压缩,以下两种解压缩命令足以满足一般应用要求:
tar -xvf 压缩包名称                     #解压非gzip格式的压缩包
tar -zxvf 压缩包名称                   #解压gzip格式的压缩包
tar -zxvf db.all.gz
gzip命令是Linux系统中常用的 压缩工具,它可以对tar命令创建的 进行压缩,但是,gzip所生成的压缩包使用 tar -zxvf命令就可解压缩

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值