1、查找文件内的关键字
1 cat test | grep "key" //非全词匹配
2 grep "key" test //非全词匹配
3 grep -w "key" test //全词匹配
4 grep -i "key" test //忽略大小写
2、查找文件内的关键字的个数
1 cat test | grep "key" | wc -l
2 grep "key" test | wc -l
3、使用grep查找两个文件不同的行
1 grep -wvf test1 test2 //test1中不存在,test2中存在的行
2 grep -wvf test2 test1 //test2中不存在,test1中存在的行
4、使用grep查找两个文件相同的行
1 grep -wf test1 test2
5、使用uniq查找两个文件不同的行
1 cat test1 test2 | sort | uniq -u
6、使用uniq查找两个文件相同的行
1 cat test1 test2 | sort | uniq -d
7、文本行去重并按重复次数排序
1 sort test | uniq -c | sort -rn
8、删除文本中有关键字的行
1 sed -i '/^key/d' test //删除以关键字key开头的行
2 sed -i '/key/d' test //删除包含关键字key的行
9、删除文本中的空行
1 sed '/^$/d' test
10、批量给文件添加后缀名
1 rename 's/$/.txt' * //给当前目录下的所有文件添加.txt后缀
11、批量更改文件后缀名
1 rename 's/.csv/.txt' * //将当前目录下的所有.csv后缀名转换为.txt后缀名
12、文件大小写转换
1 cat test | tr 'a-z' 'A-Z'
13、文件中字符串替换
1 sed -i 's/old_key/new_key/g' test //将test中所有的old_key替换成new_key
14、查找指定大小文件并放到指定路径
1 find -size -100k | xargs -i cp {} ./path_name // 将当前目录下100K的文件拷贝到path_name路径下
2 find -size -100k | xargs -i mv {} ./path_name // 将当前目录下100K的文件移动到path_name路径下
15、在test2中查找test1中的每一行,并去重计数
for line in $(cat test1);do cat test2 |grep -wi "$line$"; done|sort -rn|wc -l
16、查看目录下(包括子目录)所有文件的大小
1 find ./ -type f | xargs -i ls -lh {} | awk '{print $5}'
17、批量计算文件夹内所有文件的MD5
1 find ./Sample/ -type f | xargs -i md5sum {} | tr 'a-z' 'A-Z' |awk '{print $1}' //批量获取Sample目录下所有文件的MD5
18、将大文件拆分成小文件
split -l 100 test temp -d -a 3 //将文件test按照每100行拆分成一个文件,新生成的子文件以temp为文件名前缀,以3位数字为文件名后缀
// -l 按行拆分
// -b按大小拆分,单位(K,M,G,T)
//-d 默认后缀名为数字
//-a 指定后缀长度
19、awk 获取文件的某一行某一列
1 //例:<test>文件有如下内容 2 // 1 李明 18 3 // 2 张三 19 4 // 3 赵四 20 5 // 4 刘五 19 6 cat test | awk '{print $3}' //获取test文件的第三列 18 19 20
6 cat test | awk -F "," '{print $3}' //按指定字符分割列,获取test文件的第三列 18 19 20
cat test | awk -F "," '$3=="19" {print $2}' //获取test文件的第三列为19的人:张三,刘五