二、文件级的操作
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
18、分割大文件
split -l 10000 source.txt -d -a 5 source_split
19、统计目录下,某后缀的文件的数目
ls -F | grep 'txt' | wc -l