Linux常用命令----文件操作

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的人:张三,刘五

 

原文地址:https://www.cnblogs.com/chunqiu666/p/12704708.html