Linux shell 命令博大精深,平日只取其皮毛,深感遗憾,今天整理一些很好用但平时用得不多的命令,便于写自动化脚本时做快速查询用
1. ls -t 按时间排序
按文件修改时间新到旧排列,如果要改为旧到新,则使用 ls -tr, 其中 -r 是反转命令 -t
配合 -l 使用更佳
1 2 3 4 5
| # 时间新到旧 ls -lt
# 时间旧到新 ls -ltr
|
2. ls -S 按大小排序
按文件大小从大到小排列,如果要从小到大,则使用 ls -hS
配合 -h 使用能按人类可读性更高的方式显示文件大小
1 2 3 4 5
| # 文件从大到小 ls -lhS
# 文件从小到大 ls -lhSr
|
3. 统计目录和文件数量
1 2 3 4
| # grep 查询 - 开头,也就是文件,wc 统计数量 ls -l | grep "^-" |wc -l
ls -l | grep "^d" |wc -l
|
4. 列出文件的绝对路径
1 2 3
| # pwd 输出当前目录,通过 sed 添加当前文件名到其中
ls | sed "s:^:`pwd`/:"
|
5. 统计文件中重复的行
1 2 3 4 5 6 7
| # 输出文件中重复行的个数,sort 先进行排序,然后 uniq 才能对连续的重复行生效 sort <file> | uniq -c
# -c 命令统计重复的个数 4 test1111 5 test222222 6 test33
|
6. 文件大小写替换
1 2
| # 将小写替换为大写 echo abdcABCD |tr a-z A-Z
|
7. 合并文件
paste 用来按行合并文件,可以做到合并多个文件时,相同行数组合到一起输出,可以用来合并文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| afile: aaa 111
bfile: bbb 222
cfile: ccc 333
paste afile bfile cfile
#输出: aaa bbb ccc 111 222 333
# 使用 -s 参数可以将每个文件内容组成一行 paste -s afile bfile cfile
#输出: aaa 111 bbb 222 ccc 333
|