1.正则表达式
sort命令
sort aaa.txt
#把内容读到内存,然后以行为单位进行排序并把结果输出到stdout(因为直接把排序结果输出,所以可以重定向),但是并不修改源文件内容。
参考如下
sort hello > hello_sort
uniq命令
uniq aaa.txt
#流程和sort类似,也是把相邻的相同行去掉,最后输出。注意间隔的相同行无法去除。
如何把文件所有向同行都给去掉,达到完全去重?
xargs
history #查看历史命令 参考 上键 下键
参考:find /usr/include -name stdio.h | xargs ls -l
解决方式如下
sort aaa.txt | uniq > bbb.txt #严格去重后的数据保存在bbb.txt中
wc [-c/-l/-w] aaa.txt #-c计算文件多少字节、-l计算多少行、-w计算多少个字
#iconv 修改字符集
#iconv [options] [-f from-encoding] [-t to-encoding] [inputfile]
iconv -f gbk -t utf-8 aaa.txt #例如把aaa.txt的gbk编码格式转换成utf-8
grep #(全局 正则表达式 打印)
参数:
-E 表示使用正则表达式regexp
-n 显示行号
-i 忽略正则表达式中的大小写
正则表达式:
基本单位:普通字符,转义字符, [0-9]
基本操作:
连接 ab
重复
重复零次或一次 ?
重复一次或多次 +
重复任意次数 *
{x, y}匹配前一项内容重复的次数介于x和y之间
{x} 匹配前一项内容x次
{x,} 匹配前一项最少x次
{, x} 匹配前一项最多x次
举例:
grep -nE "txt" a.txt #匹配所有包含txt的行
grep -nE "[rw]" a.txt #匹配含r或者含w
grep -nE "(rw)" #a.txt匹配包含rw