文章目录
wc -l 查看文本行数
# 查看文件行数
$ wc -l a.txt
1268631 a.txt
# 查看文件夹文本数量
$ ls | wc -l
$ find dir_path -name '*.txt' | xargs cat | wc -l
7482839
du 查看文件大小
du:display disk usage statistics
语法
du [-H | -L | -P] [-a | -s | -d depth] [-c] [-h | -k | -m | -g] [-x] [-I mask] [file …]
参数解释
-a
: 列出所有的文件与目录容量,因为默认仅统计目录的容量而已-h
: 以人们较易读的容量格式呈现(G/M/K)显示,自动选择显示的单位大小-s
: 列出总量而已,而不列出每个个别的目录占用容量-k
: 以KB为单位进行显示-m
: 以MB为单位进行显示
常见用法:
# 查看文件大小
du -h a.txt
1.5G a.txt
# 查看当前目录大小
du -sh ./
# 在指定目录下,显示10个占用空间最大(最小)的目录或文件最大:
du -sh * | sort -nr | head
# 最小:
du -sh * | sort -n | head
查看文件内容
cat a.txt
head a.txt
tail a.txt
# 查看前15行
head -15 a.txt
sort 排序
# 排序
sort 01.txt -o 02.txt
# 逆序
sort -r 01.txt -o 02.txt
# 排序去重
sort -u 01.txt -o 02.txt
shuf 乱序
shuf : generate random permutations
shuf a.txt -o b.txt
uniq 逐行去重
- 文件需要先使用 sort 命令排序,而后调用 uniq,输出不需要
-o
选项
# 将 02.txt 文件去重并输出到 03.txt
uniq 02.txt 03.txt
tree 显示文件结构
mac 下安装 tree 命令
brew install tree
# 显示当前文件夹下的文件结构
$ tree
# 文件结构只显示目录,不显示文件
$ tree -d
# 显示下面两层文件夹
$ tree -L 2
其它选项:
-a
, 显示所有文件,包括隐藏文件-A
使用ASNI绘图字符显示树状图而非以ASCII字符组合。-C
: 在文件和目录清单加上色彩,便于区分各种类型。-d
: 显示目录名称而非内容。-D
: 列出文件或目录的更改时间。-f
: 显示完整的相对路径名称。-F
: 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上*
,/
,=
,@
,|
号。-g
: 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。-i
: 不以阶梯状列出文件或目录名称,不显示树枝,常与-f
参数配合使用-I
: 不显示符合范本样式的文件或目录名称。-l
: 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。-n
: 不在文件和目录清单加上色彩。-N
: 直接列出文件和目录名称,包括控制字符。-p
: 列出权限标示。-P
: 只显示符合范本样式的文件或目录名称。-q
: 用"?"号取代控制字符,列出文件和目录名称。-s
: 列出文件或目录大小。-t
: 用文件和目录的更改时间排序。-u
: 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。-x
: 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外。
scp 拷贝文件
# 拷贝文件
$ scp src_file/ xx@10.0.100.00:/home/xx/target_file/
# 拷贝文件夹
$ scp -r src_dir/ xx@10.0.100.00:/home/xx/target_dir/
rsync 同步文件
# 将 src_dir 内部的内容,同步到 dest_dir 内部
$ rsync -r src_dir/ dest_dir/
$ rsync -r src_dir/ dest_dir
# 将 src_dir 同步到 dest_dir 内部
$ rsync -r src_dir dest_dir/
$ rsync -r src_dir dest_dir
$ rsync -av src_dir/ username@remote_host:dest_dir/ # 远程同步
其他选项:
-r
: 递归,即包含子目录-a
: 相比-r
可同步元信息;-n
: 模拟执行-v
: 将结果输出到终端-e
: 指定协议
paste 拼接文件
默认文件之间使用 \t
拼接
paste 01.txt 02.txt > 04.txt
拼接多个
paste 01.txt 02.txt 03.txt > 04.txt
设置分隔符
分隔符只能是一个字符,如果设置多个,默认取第一个字符
paste -d '|||' 01.txt 02.txt > 04.txt
cut 分割文件
比如句对文件,使用 \t
拼接,可以分割
获取文件第1列
cut -f1 a112.txt
cut -f1 a112.txt > 01.txt
获取文件第2列
cut -f2 a112.txt > 01.txt