sort命令
功能:
sort 可针对文本文件的内容,以行为单位来排序
sort 命令将以默认的方式将文本文件的第一列以 ASCII 码的次序从小到大排列,
并将结果输出到标准输出。
语法:
标识符:
-r 以相反的顺序来排序。
-n 依照数值的大小排序。
-f 排序时,将小写字母视为大写字母。
-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
具体应用:
使用 -k <行数: num>
$ cat testfile # testfile文件原有排序
test 30
Hello 95
Linux 85
$ sort testfile # 重排结果
Hello 95
Linux 85
test 30
$ sort testfile -k 2
test 30
Linux 85
Hello 95
uniq命令
功能:
uniq 可检查文本文件中重复出现的行列。
uniq -u 正确工作,输入数据必须是排序好的
因为 uniq 只检查相邻的行来确定重复
语法:
格式:
uniq [-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][--help][--version][输入文件][输出文件]
标识符:
-c或--count 在每列旁边显示该行重复出现的次数。
-d或--repeated 仅显示重复出现的行列。
-f<栏位>或--skip-fields=<栏位> 忽略比较指定的栏位。
-s<字符位置>或--skip-chars=<字符位置> 忽略比较指定的字符。
-u或--unique 仅显示出一次的行列。
-w<字符位置>或--check-chars=<字符位置> 指定要比较的字符。
具体应用:
uniq -c testfile
结果输出如下:
$ uniq -c testfile #删除重复行后的内容
3 test 30 #前面的数字的意义为该行共出现了3次
4 Hello 95 #前面的数字的意义为该行共出现了4次
2 Linux 85 #前面的数字的意义为该行共出现了2次
wc命令:
功能:
wc指令我们可以计算文件的Byte数、字数、或是列数
语法:
格式:
wc [-clw][--help][--version][文件...]
标识符:
-c或--bytes或--chars 只显示Bytes数。
-l或--lines 显示行数。
-w或--words 只显示字数。
awk
格式:
awk 程序接受一个模式串(可选),以及一个代码块,指定当模式匹配时应该做何种操作。
默认当模式串即匹配所有行
eg. awk '/bob/ {print $0}' data.txt
/bob/ 是模式串,匹配包含 "bob" 的行。
{print $0} 是代码块,打印匹配行的整个内容。
参数:
在代码块中,$0 表示整行的内容,$1 到 $n 为一行中的 n 个区域,
区域的分割基于 awk 的域分隔符(默认是空格,可以通过 -F 来修改)
eg. awk -F"," '{print $2"\t"$3 }' form.txt