Shell文件的排序、合并和分割
来源:互联网 发布:锐捷mac怎么设置 编辑:程序博客网 时间:2024/04/28 08:12
sort
sort [option] inputfile
选项及其意义:
e.g.
sort -t: -k3n inputfile
-k的使用
-k选项的语法格式:
FStart.CStart Modifie,FEnd.CEnd Modifier-------Start--------,-------End-------- FStart.CStart 选项 , FEnd.CEnd 选项
这个语法格式可以被其中的逗号,分为两大部分,Start部分和End部分。Start部分也由三部分组成,其中的Modifier部分就是我们之前说过的类似n和r的选项部分。我们重点说说Start部分的FStart和C.Start。C.Start也是可以省略的,省略的话就表示从本域的开头部分开始。FStart.CStart,其中FStart就是表示使用的域,而CStart则表示在FStart域中从第几个字符开始算“排序首字符”。同理,在End部分中,你可以设定FEnd.CEnd,如果你省略.CEnd,则表示结尾到“域尾”,即本域的最后一个字符。或者,如果你将CEnd设定为0(零),也是表示结尾到“域尾”。
e.g.
#从公司英文名称的第二个字母开始进行排序$ sort -t ' ' -k 1.2 facebook.txt baidu 100 5000 sohu 100 4500 google 110 5000 guge 50 3000#只针对公司英文名称的第二个字母进行排序,如果相同的按照员工工资进行降序排序$ sort -t ' ' -k 1.2,1.2 -nrk 3,3 facebook.txt baidu 100 5000 google 110 5000 sohu 100 4500 guge 50 3000
uniq
uniq [option] inputfile
选项及其意义:
e.g.
uniq 与 sort -u的区别
- sort -u所有的重复行都会被去除。
- uniq 去除的重复行必须是连续出现的。
join
join [option] file1 file2
选项及其意义:
option|desc
-|-
-a<1或2>:除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行; 相当于left join ,right join
-e<字符串>:若[文件1]与[文件2]中找不到指定的栏位,则在输出中填入选项中的字符串;
-i或–ignore-case:比较栏位内容时,忽略大小写的差异;
-o<格式>:按照指定的格式来显示结果;
-t<字符>:使用栏位的分割字符;
-v<1或2>:更-a相同,但是只显示文件中没有相同栏位的行;
-1<栏位>:连接[文件1]指定的栏位; -2<栏位>:连接[文件2]指定的栏位。
- -a与-v的区别:
-a显示显示匹配的记录。-v不显示匹配的记录。 - -o
join默认显示2个文件中的所有域,-o用于改变显示结果。bash
#显示2个文件的前2列
join -t: -o1.1 1.2 2.1 2.2 file1 - -1,-2
join默认指定2个文件的第一个域进行join,-1,-2指定2个文件进行join的域
cut
cut用于从标准输入或文件中按域或行提取数据。
cut [option] file
选项及其意义:
option desc -c 指定提取的字符数或字符范围 -f 指定提取的域数或域范围 -d 改变域分割符
-c格式:
- -cn :第n个字符
- -cn,m :第n,m个字符
- -cn-m :第n至m个字符
-f格式与-c一样
paste
paste将标准输入或文件中的内容粘贴到新的文件。多个文件按列对列进行粘贴
paste [option] inputfile outfile
选项及其意义:
option desc -s 每个文件粘贴为一行,默认按列粘贴 - 从标准输入中读取文件 -d 改变域分割符,默认是空格或tab
e.g.
#每行显示5个文件ls | past -d“ ” - - - - -
split
用于切割文件
split [option] input output
选项及其意义:
option desc -或-l 用于指定文件切割的行数 -b 用于文件切割的大小,单位字节 -C 同-b,但切割时尽量保持每行的完整性 -d 使用数字作为后缀 -a 指定后缀长度,-a 3,长度为3
文件切割时默认加上编号,aa~zz,当不指定小文件名字时,默认为x。
tr
tr实现字符转换
tr [option] 字符串1 字符串2 输入文件
选项及其意义:
option desc -c 选定字符串1中的补集,即反选字符串1中的补集 -d 删除字符串1中的所有字符 -s 删除所有重复出现的字符序列,只保存1个
e.g.
#删除所有大写字母tr -s A-Z file
tr支持部分正则表达式,例如A-Z 0-9 A*3,tr支持POSIX字符以及控制字符
注意这些控制字符,如果想在linux下输入,如我们可能需要输入^M这种字符,只需ctrl+V+M同时按下即可。
tar
tar [-cxtzjvfpPN] 文件与目录 ….
-c:建立一个压缩文件的参数指令(create 的意思);
-x:解开一个压缩文件的参数指令!
-t:查看 tarfile 里面的文件!
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.
特别注意,在参数的下达中, c/x/t/r/u 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。
-z:有gzip属性,即需要用 gzip 压缩 -j:有bz2属性,即需要用 bzip2 压缩 -Z:有compress属性的 -v :压缩的过程中显示文件(显示所有过程)!这个常用,但不建议用在背景执行过程! -O:将文件解开到标准输出 -f :使用档名,请留意,在 f 之后要立即接档名!不要再加参数!例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成『 tar -zcvPf tfile sfile』才对喔! -p :使用原文件的原来属性(属性不会依据使用者而变) -P :可以使用绝对路径来压缩! -N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中! --exclude FILE:在压缩的过程中,不要将 FILE 打包! -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。 # tar -cf all.tar *.jpg 这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。 # tar -rf all.tar *.gif 这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。 # tar -uf all.tar logo.gif 这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。 # tar -tf all.tar 这条命令是列出all.tar包中所有文件,-t是列出文件的意思 # tar -xf all.tar 这条命令是解出all.tar包中所有文件,-x是解开的意思
1、*.tar 用 tar –xvf 解压
2、*.gz 用 gzip -d或者gunzip 解压
3、.tar.gz和.tgz 用 tar –xzf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar –xjf 解压
6、*.Z 用 uncompress 解压
7、*.tar.Z 用tar –xZf 解压
rev
rev命令将文件中的每行内容以字符为单位反序输出,即第一个字符最后输出,最后一个字符最先输出,依次类推
colrm
colrm命令用于删除文件中的指定列。colrm命令从标准输入设备读取数据,转而输出到标准输出设备。如果不加任何参数,则colrm命令不会过滤任何一行。
colrm 开始列号 结束列号 < file
- shell:文件的排序、合并和分割
- Shell文件的排序、合并和分割
- Linux Shell 文件的排序、合并和分割
- 文件的排序、合并和分割
- Linux文件的合并、排序和分割
- Linux文件的合并、排序和分割
- “Linux文件的合并、排序和分割” 之 uniq 命令
- “Linux文件的合并、排序和分割” 之 join 命令
- “Linux文件的合并、排序和分割” 之 cut 命令
- “Linux文件的合并、排序和分割” 之 paste 命令
- “Linux文件的合并、排序和分割” 之 split 命令
- “Linux文件的合并、排序和分割” 之 tr 命令
- “Linux文件的合并、排序和分割” 之命令整合
- SHELL [文本文件的分类,合并和分割]
- 合并分割的文件
- “Linux文件的合并、排序和分割” 之 sort 命令详解
- linux--文件合并和分割
- 文件的合并与分割
- netty-对象池实现Recycler用法测试
- oracle学习之路
- Linux基础(二):文件系统、文件存储结构
- ubuntu权限不够(su 命令认证失败 )解决办法
- JZOJ 1330. 迎接仪式
- Shell文件的排序、合并和分割
- leetcode611: Valid Triangle Number
- Servlet 工程 web.xml 中的 servlet 和 servlet-mapping 标签
- UE4制作一团逼真的火焰
- hash模式实现前端路由
- 2017,我的大学,我的退役赛
- JavaScript算法学习
- Java设计模式:八、外观模式
- unity 读取精灵图Sprite