uniq

uniq命令用于报告或忽略文件中的重复行,一般与sort命令结合使用。

语法

uniq(选项)(参数)

选项

-c或——count:在每列旁边显示该行重复出现的次数;
-d或--repeated:仅显示重复出现的行列;
-f<栏位>或--skip-fields=<栏位>:忽略比较指定的栏位;
-s<字符位置>或--skip-chars=<字符位置>:忽略比较指定的字符;
-u或——unique:仅显示出一次的行列;
-w<字符位置>或--check-chars=<字符位置>:指定要比较的字符。

参数

  • 输入文件:指定要去除的重复行文件。如果不指定此项,则从标准读取数据;
  • 输出文件:指定要去除重复行后的内容要写入的输出文件。如果不指定此选项,则将内容显示到标准输出设备(显示终端)。

实例

删除重复行:

uniq file.txt
sort file.txt | uniq
sort -u file.txt

只显示单一行:

uniq -u file.txt
sort file.txt | uniq -u

统计各行在文件中出现的次数:

sort file.txt | uniq -c

在文件中找出重复的行:

sort file.txt | uniq -d

diffstat

diffstat命令用来显示diff命令输出信息的柱状图,用以显示diff命令比较两个文件的不同统计信息。用户也可以直接使用|将diff命令所输出的结果直接送给diffstat命令进行统计结果的显示。使用该命令时,若所比较的文件或者子目录不在当前目录下,则应该使用其完整路径。

语法

diffstat(选项)(参数)

选项

-n<文件名长度>:指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名;
-p<文件名长度>:与-n参数相同,但此处的<文件名长度>包括了文件的路径;
-w:指定要输出时栏位的宽度;
-v:显示版本信息。

参数

文件:指定保存有diff命令的输出信息文件。

实例

将目录"test1"和"test2"下的同名文件"testf.txt"使用diff命令进行比较。然后使用diffstat命令对结果进行统计显示,输入如下命令:

diff test1 test2 | diffstat    #进行比较结果的统计显示

注意:使用这条命令可以非常方便地实现统计显示的功能。

对于查看文件中的内容,用户可以通过cat命令进行查看即可,具体操作如下:

cat test1/testf.txt           #查看test1/testf的内容
abc
def
ghi
jkl
mno
pqr
stu
vws

cat test2/testf.txt          #查看test2/testf的内容
abc
def
ghi
jkl
mno

从上面的文件内容显示,可以看到两个文件内容的差别。现在来运行刚才的命令,对文件比较的结果进行统计显示,结果如下:

testfile | 2 +-             #统计信息输出显示
1 file changed, 1 insertion(+), 1 deletion(-)

rev

rev命令将文件中的每行内容以字符为单位反序输出,即第一个字符最后输出,最后一个字符最先输出,依次类推。

语法

rev(参数)

参数

文件:指定要反序显示内容的文件。

实例

[root@localhost ~]# cat iptables.bak
# Generated by iptables-save v1.3.5 on Thu Dec 26 21:25:15 2013
*filter
:INPUT DROP [48113:2690676]
:FORWARD accept [0:0]
:OUTPUT ACCEPT [3381959:1818595115]
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
COMMIT
# Completed on Thu Dec 26 21:25:15 2013

[root@localhost ~]# rev iptables.bak    
3102 51:52:12 62 ceD uhT no 5.3.1v evas-selbatpi yb detareneG #
retlif*
]6760962:31184[ PORD TUPNI:
]0:0[ TPECCA DRAWROF:
]5115958181:9591833[ TPECCA TUPTUO:
 TPECCA j- ol i- TUPNI A-
 TPECCA j- 22 tropd-- pct m- pct p- TUPNI A-
 TPECCA j- 08 tropd-- pct m- pct p- TUPNI A-
 TPECCA j- DEHSILBATSE,DETALER etats-- etats m- TUPNI A-
 TPECCA j- pmci p- TUPNI A-
 TPECCA j- ol o- TUPTUO A-
TIMMOC
3102 51:52:12 62 ceD uhT no detelpmoC #

fmt

fmt命令读取文件的内容,根据选项的设置对文件格式进行简单的优化处理,并将结果送到标准输出设备。

语法

fmt(选项)(参数)

选项

-c或--crown-margin:每段前两列缩排;
-p<列起始字符串>或-prefix=<列起始字符串>:仅合并含有指定字符串的列,通常运用在程序语言的注解方面;
-s或--split-only:只拆开字数超出每列字符数的列,但不合并字数不足每列字符数的列;
-t或--tagged-paragraph:每列前两列缩排,但第1列和第2列的缩排格式不同;
-u或--uniform-spacing:每列字符之间都以一个空格字符间隔,每个句子之间则两个空格字符分隔;
-w<每列字符数>或--width=<每列字符数>或-<每列字符数>:设置每列的最大字符数。

参数

指定要优化格式的文件。

wc

wc命令用来计算数字。利用wc指令我们可以计算文件的Byte数、字数或是列数,若不指定文件名称,或是所给予的文件名为“-”,则wc指令会从标准输入设备读取数据。

语法

wc(选项)(参数)

选项

-c或--bytes或——chars:只显示Bytes数;
-l或——lines:只显示列数;
-w或——words:只显示字数。

参数

文件:需要统计的文件列表。

tac

tac命令用于将文件已行为单位的反序输出,即第一行最后显示,最后一行先显示。

语法

tac(选项)(参数)

选项

-a或——append:将内容追加到文件的末尾;
-i或——ignore-interrupts:忽略中断信号。

参数

文件列表:指定要保存内容的文件列表。

look

look命令用于显示文件中以指定字符串开头的任意行。

语法

look(选项)(参数)

选项

-a:使用另一个字典文件web2,该文件也位于/usr/dict目录下;
-d:只对比英文字母和数字,其余一概忽略不予比对;
-f:忽略字符大小写差别;
-t<字尾字符串>:设置字尾字符串。

参数

  • 字符串:指定要查找的字符串;
  • 文件:指定要查找的目标文件。

pr

pr命令用来将文本文件转换成适合打印的格式,它可以把较大的文件分割成多个页面进行打印,并为每个页面添加标题。

语法

pr(选项)(参数)

选项

-h<标题>:为页指定标题;
-l<行数>:指定每页的行数。

参数

文件:需要转换格式的文件。