您的位置:首页 > 运维架构 > Linux

linux命令之文件级的操作

2015-08-07 16:34 513 查看
二、文件级的操作

 

1、查看文件大小: ls  -lah

 

2、查看文件行数:wc  -l  文件名

 

3、强制删除文件夹:rm  -r  文件夹

 

4、查看文件全路径:pwd

 

5、查看文件大小:ll  文件路径  -h    或者  ls  -l  文件路径  -h

 

6、取一个文件的前几行:head  -n  行数  文件名

 

7、查找文件中内容:sed  -n  '/要查找的内容'/p  文件名  |  wc  -l

 

8、将两个文件按照第一列连接在一起

例:



awk  -F  '\t'  '{for(i=2;i<=NF;i++)a[$1]=a[$1]"\t"$i}END{for(i in a)print i,a[i]}'  2.txt  1.txt > result.txt

 

9、将第二个文件中与第一个文件第二列不同的行取出

例:



awk  'NR==FNR{b[$1]=$2}NR>FNR{a[$1]=$2;if(a[$1]!=b[$1])print $1,"A:"a[$1],"B:"b[$1]}'  1.txt  2.txt > result.txt

 

10、awk取一个文件中的几行(等距抽样)

 

cat  source.txt | awk  '{if(NR%10000==0) print $0}'  > result.txt

 

11、查看文件行数:

 

cat  文件名 |  awk  'END  {print  NR}'

 

12、判断文件的列数:

 

cat  source.txt | awk  -F  '\t'  '{print NF}'  | sort|uniq|more

 

13、查看文件是否为空文件:

 

if  test  -s  file.txt;  then  ...

else  ...

fi

或者

if  [  -s  file.txt  ];  then  ...

else  ...

fi

 

14、删除文件中包含指定内容的行

 

content="指定内容"

sed  -i  "/^$content/d"  文件名

ps:删除以content开头的行

 

15、批量修改文件的多行(添加相同的内容)

 

(1)进入VISUAL BLOCK模式: ctrl + v

(2)全选:G

(3)鼠标移动到要添加的位置:I

(4)添加要添加的内容

(5)Esc

(6)Esc

 

16、删除文件中相同的行:

 例:

原始文件:



 

按照第2列,将第2列相同的放在一起:cat  source.txt | sort  -k2



 

按照第2列去重:

 

cat  source.txt | sort  -k2 | awk  'begin {prev_col2="NULL"}{if($2!=prev_col2)print $0;prev_col2=$2}'



ps:按照第2,3列去重:

 

cat  source.txt | sort  -k2,3 | awk  'begin {prev_col2="NULL";prev_col3="NULL"}{if($2!=prev_col2  &&  $3!=prev_col3)print $0;prev_col2=$2;prev_col3=$3}'

 

17、将两个文件合并成一个文件的两列(行数相同);

例:



paste  -d  "\t"  1.txt  2.txt  > result.txt
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: