cat
cat -A显示控制字符 -s禁止输出多个空白行 -n给文本添加行号
cat > foo.txt
The quick brown fox jumped over the lazy dog.
cat -ns foo.txt
1 The quick brown fox 2 3 jumped over the lazy dog.
sort
sort 程序对标准输入的内容,或命令行中指定的一个或多个文件进行排序
sort > foo.txt c b a cat foo.txt a b c
sort file1.txt file2.txt file3.txt > final_sorted_list.txt 排序并合并文件
选项 |
长选项 |
描述 |
-b |
--ignore-leading-blanks |
默认情况下,对整行进行排序,从每行的第一个字符开始。这个选项导致 sort 程序忽略 每行开头的空格,从第一个非空白字符开始排序。 |
-f |
--ignore-case |
让排序不区分大小写。 |
-n |
--numeric-sort |
基于字符串的数值来排序。使用此选项允许根据数字值执行排序,而不是字母值。 |
-r |
--reverse |
按相反顺序排序。结果按照降序排列,而不是升序。 |
-k |
--key=field1[,field2] |
对从 field1到 field2之间的字符排序,而不是整个文本行。看下面的讨论。 |
-m |
--merge |
把每个参数看作是一个预先排好序的文件。把多个文件合并成一个排好序的文件,而没有执行额外的排序。 |
-o |
--output=file |
把排好序的输出结果发送到文件,而不是标准输出。 |
-t |
--field-separator=char |
定义域分隔字符。默认情况下,域由空格或制表符分隔。 |
一个选项字母可能被包含在一个键值说明符的末尾,其用来指定排序的种类。这些 选项字母和 sort 程序的全局选项一样:b(忽略开头的空格),n(数值排序),r(逆向排序),等等。
sort --key=1,1 --key=2n distros.txt
-k 3.7 第三个字段 偏移7个字符来排序 11/25/2008 月日年 根据年排序
-t ‘:‘ 冒号作为分界符
tr
tr 替换 tr [a-z] [A-Z] 将小写替换为大写 tr -d abc 删除"abc"
cat a.txt | tr -d ‘\r‘ > a.txt 将a.txt里的\r去掉
uniq
uniq foo.txt 删除相邻的相同行 常和sort同时使用 有的sort有-u选项 实现相同的功能
选项 |
说明 |
-c |
输出所有的重复行,并且每行开头显示重复的次数。 |
-d |
只输出重复行,而不是特有的文本行。 |
-f n |
忽略每行开头的 n 个字段,字段之间由空格分隔,正如 sort 程序中的空格分隔符;然而, 不同于 sort 程序,uniq 没有选项来设置备用的字段分隔符。 |
-i |
在比较文本行的时候忽略大小写。 |
-s n |
跳过(忽略)每行开头的 n 个字符。 |
-u |
只输出独有的文本行。这是默认的。 |
cut
cut 按列剪切文本
选项 |
说明 |
-c char_list |
从文本行中抽取由 char_list 定义的文本。这个列表可能由一个或多个逗号 分隔开的数值区间组成。 |
-f field_list |
从文本行中抽取一个或多个由 field_list 定义的字段。这个列表可能 包括一个或多个字段,或由逗号分隔开的字段区间。 |
-d delim_char |
当指定-f 选项之后,使用 delim_char 做为字段分隔符。默认情况下, 字段之间必须由单个 tab 字符分隔开。 |
--complement |
抽取整个文本行,除了那些由-c 和/或-f 选项指定的文本。 |
paste
paste 添加列到文本中
paste a.txt b.txt 将a.txt每行的若干字段添加到b.txt的每行的前面
join
join 类似于数据库的join操作 根据共享字段 将列连接起来
comm
comm file1.txt file2.txt 比较两个文件 第1列是第一个文件独有的 第2列是第二个文件独有的
第三列是共有的 -n表示隐藏第n列 -12隐藏1、2列,只显示共有的部分
diff
diff 比较多个文件、目录
diff file1.txt file2.txt 1d0 < a 4a4 > e
改变 |
说明 |
r1ar2 |
把第二个文件中位置 r2 处的文件行添加到第一个文件中的 r1 处。 |
r1cr2 |
用第二个文件中位置 r2 处的文本行更改(替代)位置 r1 处的文本行。 |
r1dr2 |
第一个文件中位置 r1 处的文本行剪切到第二个文件中位置 r2 处。 |
diff -Naur old_file new_file > diff_file
patch < diff_file
file
查看文件类型
如果是二进制文件,可查看所依赖的包