RH-033 2011-02-16

    技术2025-12-04  1

    wc *统计行数,单词书和字符数 *使用-l仅作行统计(最常用) *使用-w仅作单词统计 *使用-c做字符统计 * wc <file> 例如: wc install.log 显示结果为 932 1872 37619 install.log 分别表示 行数 单词书 字符数 文件名 如果对/etc/passwd进行行数统计,就可以知道有多少用户账号。因为一个用户占用一行 wc -l /etc/passwd uniq *将文件中相邻的重复行移除 *可使用sort先进行排序,然后用uniq移除重复行。或者使用sort -u *-c参数显示原文件中该行的出现次数 用例 uniq file1 sort file1 ! uniq uniq -c file1 其他字符串处理工具 *paste  将文件粘贴在一起 *tr     转义字符串 用例 paste file1 file2 file3 > merge tr 'A-Z' 'a-z' < .bash_profile 以上tr的例子之前也有举过,现在另举一例。 在unix中段落符号是$,而在dos中式/r。所以在dos中unix文本的段落符号会失效。 先查看一下段落符号 cat -A file.txt 以上-A表示显示所有字符,可以看到每行末尾都有个$ 使用 cat -A file.txt | tr '$' '/r' > file2.txt 这样就将段落符号替换并生成新的file2.txt文件了。查看新文件 cat -A file2.txt 看到末尾不是/r而是^M$。这是unix系统的解释,其实已经替换成功了。 我们可以一条更简洁的等价指令完成刚才的工作 unix2dos -n file.txt file2.txt 反方向转换的指令是dos2unix diff版本比对 先看一下两个文件的内容 tail ABC.txt abc.txt ===> ABC.txt <=== A B C ===> abc.txt <=== a b c 然后比对两个文件 diff ABC.txt abc.txt 结果是 1c1 < A --- > a 3c3 < C --- > c 以上1c1表示第1行,全文第1个字符有不同 <表示第一个文件,>表示第二个文件 还可以使用sdiff命令比对 sdiff ABC.txt abc.txt 输出 A      | a B        B C      | c 其中有差异的行之前都会标上| aspell拼写检查 aspell check <file> 如果有拼错,则会跳到单词,屏幕下方显示一些备用修改项,以及提供操作选项,例如忽略,替换,退出等。 aspell拼写检查依据一个字典文件 less /usr/share/dict/words 查看该文件行数 cat /usr/share/dict/words | wc -l 显示479623,说明有近48万个单词。可以到http://aspell.sourceforge.net更新字典文件 查询单词 look <字符串> 例如 look exer 结果显示出所有以exer开头的单词,这也是根据上述字典文件而来。 文本格式化工具 *expand   将tab转换为space *fmt      重新格式段落 *pr       重新格式打印,默认情况下输出66行/页,其中包括56行文本和一个header 使用cat -A查看文件内容时,如果看到^I,说明这是个tab符。以下将tab转为空格 expand file.tab > testfile.tab fmt格式化输出。-u表示统一空白规格,-w表示一行中的最大字符数 fmt -u -w50 read 显示打印输出 pr -h"This is header" -l20 -5 /usr/share/dict/words | more -h定制header文本,l20表示每页20行,其中5表示分栏。

    最新回复(0)