macOS/Linux - 文件相关命令



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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伊织Scope

请我喝杯伯爵奶茶~!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值