几个对文件进行处理的命令总结

一、sort
sort 依据不同的数据类型进行排序
sort [-bcfMnrtk][源文件][-o 输出文件]
默认 按a-z排序
-u 去重
-o 将内容输出到指定文件里
-r 降序
-n 按数值排序
-t 指定分割符
-k 指定区间
-f 忽略大小写
sort的-t选项和-k选项
如果有一个文件的内容是这样:
[[email protected] programming]$ cat facebook.txt
banana:30:5.5
apple:10:2.5
pear:90:2.3
orange:20:3.4

这个文件有三列,列与列之间用冒号隔开了,第一列表示水果类型,第二列表示水果数量,第三列表示水果价格。那么我想以水果数量来排序,也就是以第二列来排序,如何利用sort实现?幸好,sort提供了-t选项,后面可以设定间隔符。指定了间隔符之后,就可以用-k来指定列数了。

[[email protected] programming]$ sort -n -k 2 -t ‘:’ facebook.txt
apple:10:2.5
orange:20:3.4
banana:30:5.5
pear:90:2.3

二、tr
tr用来从标准输入中通过替换或删除操作进行字符转换
-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。
-d 删除字符串1中所有输入字符。
-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。
(1)去除oops.txt里面的相邻重复的小写字符
tr -s "[a-z]"<oops.txt >result.txt
(2)删除空行 不能删除首行是空行的文本
tr -s "[\012]" < plan.txt 或tr -s ["\n"] < plan.txt
(3)有时需要删除文件中的^M,并代之以换行
tr -s "[\015]" "[\n]" < file 或tr -s "[\r]" "[\n]" < file
(4)大写到小写
cat a.txt |tr "[a-z]" "[A-Z]" >b.txt

Mac -> UNIX:tr "\r" "\n"<macfile > unixfile
UNIX -> Mac:tr "\n" "\r"<unixfile > macfile

三、cut
主要参数
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f  :与-d一起使用,指定显示哪个区域。
[[email protected] programming]$ cat /etc/passwd|head -n 5|cut -d : -f 1
root
bin
daemon
adm
lp

四、paste
将多个文件的内容合并,与cut命令完成的功能刚好相反。
paste格式为:
paste -d -s -file1 file2
选项含义如下:
-d 指定不同于空格或tab键的域分隔符。例如用@分隔域,使用- d @。
-s 将每个文件合并成行而不是按行粘贴。

五、uniq
报告或删除文件中重复的行。
-c 在输出行前面加上每行在输入文件中出现的次数。
-d 仅显示重复行。
-u 仅显示不重复的行。

时间: 2024-11-01 04:59:12

几个对文件进行处理的命令总结的相关文章

文件查找及find命令详解

find 1.文件查找: 在文件系统上查找符合条件的文件的过程: 2.文件查找:locate, find locate: 非实时查找工具:依赖于事先构建的索引:索引的构建是在系统较为空闲时自动进行(周期性任务):手动更新此数据库(updatedb):查找速度快:模糊查找: find:实时查找:查找速度略慢:精确查找: 3.find命令使用方法: find [OPTION]... [查找路径] [查找条件] [处理动作] 查找路径:默认为当前路径: 查找条件:指定的查找标准,可以根据文件名.大小.

用gdb分析core文件及常见gdb命令操作示例

1.概述 在实际的软件开发项目中,程序出现问题是在所难免的.遥想本人参加工作之后首次遇到程序的情景,至今还历历在目.之前的经验告诉我,我们越是惊慌失措,问题就越是解决不了.我们要先让自己平静下来,然后再寻找解决程序问题的办法. 在Linux下做开发的朋友,想必都与core文件打过交道.当看到自己的程序运行之后出现core时,很多人都慌乱了,仿佛天快要塌下来一样.其实,我们大可不必如此,只要我们掌握了用gdb调试core文件的办法,依然可以很快定位程序问题,一举将bug消灭掉.有关Linux co

XP下,文件夹添加右键命令行

原文:XP下,文件夹添加右键命令行 总共有3种方式: --------------------1-------------------------------------------------------- 很多人都很喜欢在CMD命令行下来操作计算机,我也是其中之一.如何快速打开CMD并且定位到指定的路径呢?很多优化软件(比如优化大师)都提供了往右键菜单中加入“CMD快速通道”的功能,当右键点击文件夹时,就打开CMD并定位到该文件夹.网上也有修改注册表来实现的,其实根本不用这么麻烦. 打开“我

4,文件盒目录管理命令,shell的引用,shell历史

目录: cd : 切换目录 cd    路径: 切换至该文件路径 cd ~[username]    : 切换至该用户的家目录, cd - : 切换至上一次所在的目录 pwd:pring working directory: 显示当前所在目录 mkdir : 创建目录 -p : 先创建父目录, 也就是 递归 创建 -v : 显示 创建 时 的 详细 信息 这里 涉及 到 一个 特性, bash关键字 的 展开, 例如 {a,b}_{c,d} 展开 之后 就是 a_c, a_d, b_c, b_d

MAC - 命令行中用sublime打开指定文件,使用ln命令建立软链接

目前sublime是mac下最好的文本编辑软件,经常要使用它打开一些文件,例如html,js,txt,json等文件,但是sublime2默认不支持在命令行下调用,经过研究发现可以用建立软连接的方式调用,同样原因应该可以用到mac下其它不支持命令行的软件 系统版本:10.9.4 可以使用 open -a /Applications/Sublime\ Text\ 2.app composer.json 但是每次这样输太麻烦,可以用建立软连接的方式调用 ln -s /Applications/Sub

shell学习之查找当前目录下文件以及文件夹大小-&#39;du&#39;命令和&#39;df&#39;命令

经过前几天的磁盘写满的事件之后,发现自己对du这个命令完全不知道,所以下决心要学习一番. 我就当一盘搬运工吧,外网找到一个教程 'du'就是查找文件夹的大小 du Typing the above at the prompt gives you a list of directories that exist in the current directory along with their sizes. The last line of the output gives you the tot

磁盘管理及文件系统管理中各种命令的使用

磁盘管理及文件系统管理中各种命令的使用 (fdisk.mkfs.mount.umount)命令 fdisk命令 fdisk进行硬盘分区从实质上说就是对硬盘的一种格式化.当我们创建分区时,就已经设置好了硬盘的各项物理参数,指定了硬盘主引导记录(即MasterBootRecord,MBR)和引导记录备份的存放位置.而对于文件系统以及其他操作系统管理硬盘所需要的信息则是通过之后的高级格式化,即Format命令来实现.用一个形象的比喻,分区就好比在一张白纸上画一个大方框.而格式化好比在方框里打上格子.安

DOS下删除整个目录及下属所有文件夹及文件最好用的命令

[转] DOS下删除整个目录及下属所有文件夹及文件最好用的命令 Windows XP以上的版本,在使用DOS命令模式下删除目录(目录就是档案总管中所谓的资料夹)不是用 deltree,而是用 rmdir 指令. 在Windows XP.2000.NT下都可用rmdir指令删除整个目录,好比说我要删除 test 这个目录下的所有目录和档案,这语法就是: rmdir /s/q test 其中: /s 是代表删除所有子目录跟其中的档案. /q 是不要它在删除档案或目录时,不再问我 Yes or No

linux帮助,文件基本操作,备份命令,vi编辑器

认识linux命令:帮助:文件基本操作:备份命令:vi编辑器的使用 1.认识linux命令 1)linux命令是完成一类功能,选项完成具体. 2)命令----shell(命令解释器)-----内核(kernel)这是命令执行过程: 根据命令是否是shell的一部分,将命令分为内部命令和外部命令:内部是shell的一部分,外部命令是由安装软件提供. 3)命令的通用格式:命令  [选项]  [参数] "-选项",短格式:"--选项",长格式,多个短格式可以合并. []:

Linux chmod命令修改文件与文件夹权限的命令附实例

Linux chmod命令修改文件与文件夹权限的命令附实例 作者:佚名 字体:[增加 减小] 来源:互联网 时间:05-01 20:46:07我要评论 在linux中要修改一个文件夹或文件的权限我们需要用到linux chmod命令来做,下面我写了几个简单的实例大家可参考一下 语法:chmod [who] [+ | - | =] [mode] 文件名 命令中各选项的含义为 u 表示“用户(user)”,即文件或目录的所有者.g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户.