当前位置: 首页 > article >正文

常用脚本命令sort head tail grep awk sed uniq

常用脚本命令sort head tail grep sed awk uniq

sort

ls -l|grep G |sort -n -k 5 -t ’ ’ -r

按照数值排序 -n
按照 空格分隔(-t)后的第5列(-k) 排序
降序 -r

~ ls -l                                     
total 0
drwx------@  4 yuan  staff   128 12  9  2021 Applications
drwxr-xr-x   6 yuan  staff   192  1 24 22:50 Calibre 书库
drwx------@ 14 yuan  staff   448  3 27 15:53 Desktop
drwx------+ 19 yuan  staff   608  2  2 10:31 Documents
drwx------@ 59 yuan  staff  1888  3 26 19:17 Downloads
drwxr-xr-x@ 28 yuan  staff   896  3 21 10:23 GitHubCode
drwxr-xr-x@ 11 yuan  staff   352  2  3  2022 GitLabCode
drwx------@ 82 yuan  staff  2624 10 18 12:11 Library
drwx------  16 yuan  staff   512  2 17 17:07 Movies
drwx------+  7 yuan  staff   224 12 28 22:32 Music
drwx------+ 11 yuan  staff   352 10 20 11:13 Pictures
drwxr-xr-x+  4 yuan  staff   128  5  7  2021 Public
drwxr-xr-x   4 yuan  staff   128  4  6  2022 PycharmProjects
drwxr-xr-x  10 yuan  staff   320 10 22  2021 apache-maven-3.8.1
drwxr-xr-x@  6 yuan  staff   192  3  2 12:15 clean_data
drwxr-xr-x  11 yuan  staff   352  5 27  2022 myfile
drwxr-xr-x   5 yuan  staff   160  3 11 23:45 soft
drwxr-xr-x@  5 yuan  staff   160  6 20  2021 work
drwxr-xr-x@  6 yuan  staff   192  2 20 08:43 wroot
drwxr-xr-x@ 14 yuan  staff   448 12 24  2021 yw-shell
➜  ~ 
# 
➜  ~ ls -l|sort -n -k 5                        
total 0
drwx------@  4 yuan  staff   128 12  9  2021 Applications
drwxr-xr-x   4 yuan  staff   128  4  6  2022 PycharmProjects
drwxr-xr-x+  4 yuan  staff   128  5  7  2021 Public
drwxr-xr-x   5 yuan  staff   160  3 11 23:45 soft
drwxr-xr-x@  5 yuan  staff   160  6 20  2021 work
drwxr-xr-x   6 yuan  staff   192  1 24 22:50 Calibre 书库
drwxr-xr-x@  6 yuan  staff   192  2 20 08:43 wroot
drwxr-xr-x@  6 yuan  staff   192  3  2 12:15 clean_data
drwx------+  7 yuan  staff   224 12 28 22:32 Music
drwxr-xr-x  10 yuan  staff   320 10 22  2021 apache-maven-3.8.1
drwx------+ 11 yuan  staff   352 10 20 11:13 Pictures
drwxr-xr-x  11 yuan  staff   352  5 27  2022 myfile
drwxr-xr-x@ 11 yuan  staff   352  2  3  2022 GitLabCode
drwx------@ 14 yuan  staff   448  3 27 15:53 Desktop
drwxr-xr-x@ 14 yuan  staff   448 12 24  2021 yw-shell
drwx------  16 yuan  staff   512  2 17 17:07 Movies
drwx------+ 19 yuan  staff   608  2  2 10:31 Documents
drwxr-xr-x@ 28 yuan  staff   896  3 21 10:23 GitHubCode
drwx------@ 59 yuan  staff  1888  3 26 19:17 Downloads
drwx------@ 82 yuan  staff  2624 10 18 12:11 Library
➜  ~ 
➜  ~ ls -l|sort -nrk 5 
drwx------@ 82 yuan  staff  2624 10 18 12:11 Library
drwx------@ 59 yuan  staff  1888  3 26 19:17 Downloads
drwxr-xr-x@ 28 yuan  staff   896  3 21 10:23 GitHubCode
drwx------+ 19 yuan  staff   608  2  2 10:31 Documents
drwx------  16 yuan  staff   512  2 17 17:07 Movies
drwxr-xr-x@ 14 yuan  staff   448 12 24  2021 yw-shell
drwx------@ 14 yuan  staff   448  3 27 15:53 Desktop
drwxr-xr-x@ 11 yuan  staff   352  2  3  2022 GitLabCode
drwxr-xr-x  11 yuan  staff   352  5 27  2022 myfile
drwx------+ 11 yuan  staff   352 10 20 11:13 Pictures
drwxr-xr-x  10 yuan  staff   320 10 22  2021 apache-maven-3.8.1
drwx------+  7 yuan  staff   224 12 28 22:32 Music
drwxr-xr-x@  6 yuan  staff   192  3  2 12:15 clean_data
drwxr-xr-x@  6 yuan  staff   192  2 20 08:43 wroot
drwxr-xr-x   6 yuan  staff   192  1 24 22:50 Calibre 书库
drwxr-xr-x@  5 yuan  staff   160  6 20  2021 work
drwxr-xr-x   5 yuan  staff   160  3 11 23:45 soft
drwxr-xr-x+  4 yuan  staff   128  5  7  2021 Public
drwxr-xr-x   4 yuan  staff   128  4  6  2022 PycharmProjects
drwx------@  4 yuan  staff   128 12  9  2021 Applications
total 0
➜  ~ 

head tail

  • 前5行
    |head -n 5

  • 后3行
    |tail -3

  • 前5行中的后3行 (第3-5行)
    |head -5 |tail -3

  • 通过less再查看
    |less

➜  ~ 
➜  ~ ls -l|sort -nrk 5 |head -n5          
drwx------@ 82 yuan  staff  2624 10 18 12:11 Library
drwx------@ 59 yuan  staff  1888  3 26 19:17 Downloads
drwxr-xr-x@ 28 yuan  staff   896  3 21 10:23 GitHubCode
drwx------+ 19 yuan  staff   608  2  2 10:31 Documents
drwx------  16 yuan  staff   512  2 17 17:07 Movies
➜  ~ 
➜  ~ ls -l|sort -nrk 5 |head -5           
drwx------@ 82 yuan  staff  2624 10 18 12:11 Library
drwx------@ 59 yuan  staff  1888  3 26 19:17 Downloads
drwxr-xr-x@ 28 yuan  staff   896  3 21 10:23 GitHubCode
drwx------+ 19 yuan  staff   608  2  2 10:31 Documents
drwx------  16 yuan  staff   512  2 17 17:07 Movies
➜  ~ ls -l|sort -nrk 5 |head -5 |tail -3  
drwxr-xr-x@ 28 yuan  staff   896  3 21 10:23 GitHubCode
drwx------+ 19 yuan  staff   608  2  2 10:31 Documents
drwx------  16 yuan  staff   512  2 17 17:07 Movies

➜  ~ 
➜  ~ ls -l|sort -nrk 5 |head -5 |tail -3 |less |grep Doc
drwx------+ 19 yuan  staff   608  2  2 10:31 Documents

grep

正则匹配

# 正则匹配 
tail -f app.log |grep -P 'ueue: \d{0,3}00|done'

# 包含 a或b
tail -f app.log |grep -E 'a|b'

echo

# 输出测试数据序列 300个序列,每行10个
➜  ~ echo {1..300} | xargs -n 10

# 输出测试数据序列 到指定文件
➜  ~ echo {1..300} | xargs -n 10 > a.txt
➜  ~ less a.txt 
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 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100
101 102 103 104 105 106 107 108 109 110
111 112 113 114 115 116 117 118 119 120
121 122 123 124 125 126 127 128 129 130
131 132 133 134 135 136 137 138 139 140
141 142 143 144 145 146 147 148 149 150
151 152 153 154 155 156 157 158 159 160
161 162 163 164 165 166 167 168 169 170
171 172 173 174 175 176 177 178 179 180
181 182 183 184 185 186 187 188 189 190
191 192 193 194 195 196 197 198 199 200
201 202 203 204 205 206 207 208 209 210
211 212 213 214 215 216 217 218 219 220
221 222 223 224 225 226 227 228 229 230
231 232 233 234 235 236 237 238 239 240
241 242 243 244 245 246 247 248 249 250
251 252 253 254 255 256 257 258 259 260
261 262 263 264 265 266 267 268 269 270
271 272 273 274 275 276 277 278 279 280
281 282 283 284 285 286 287 288 289 290
291 292 293 294 295 296 297 298 299 300

awk

awk 入门

# 获取第2列,默认分隔符为空格
| awk '{print $2}'

#  变量NR表示当前处理行
| awk '{print NR ") "$2}'


# -F,用,号分隔,获取最后一列
|awk -F ',' '{print $NF}'


# 将记录按照 \t 需要切分开 对齐
ps -ef|awk '{print $2 "\t" $8}'

sed

#取第1-5行
➜  ~ ps -ef|sed -n 1,5p

# 打印进程1-5行(第一行为表头),获取第2,8列
➜  ~ ps -ef|sed -n 1,5p | awk '{print $2 "\t" $8}'

# 查找前五个最大的文件
➜  ~ ls -l|sort -nrk 5|sed -n 1,5p
drwx------@ 82 yuan  staff  2624 10 18 12:11 Library
drwx------@ 59 yuan  staff  1888  3 26 19:17 Downloads
drwxr-xr-x@ 28 yuan  staff   896  3 21 10:23 GitHubCode
drwx------+ 19 yuan  staff   608  2  2 10:31 Documents
drwx------  16 yuan  staff   512  2 17 17:07 Movies

uniq

uniq是去重,不相邻的行不算重复值。
建议先排序再去重

选项说明:
-c:统计出现的次数(count)。
-d:只显示被计算为重复的行。
-D:显示所有被计算为重复的行。
-u:显示唯一值,即没有重复值的行。
-i:忽略大小写。
-f:跳过多少个字段(field)开始比较重复值。
-s:跳过多少个字符开始比较重复值。

# 原始文件
root@yuan>cat uniq.log 
111
222
33
111
111
333
222

# 相邻去重,不相邻的不会去重
root@yuan>uniq uniq.log 
111
222
33
111
333
222

# 排序后去重
root@yuan>sort uniq.log|uniq 
111
222
33
333

# -d显示重复的行
root@yuan>sort uniq.log|uniq -d
111
222

# -D 显示所有重复过的行。
root@yuan>sort uniq.log|uniq -D
111
111
111
222
222

# -u显示唯一行
root@yuan>sort uniq.log|uniq -u
33
333

# -c统计所有记录出现的次数
root@yuan>sort uniq.log|uniq -c
      3 111
      2 222
      1 33
      1 333

# -d -c统计重复行出现的次数
root@yuan>sort uniq.log|uniq -d -c
      3 111
      2 222

# 搜索ERROR日志文件 获取第二列 排序并去重
less app.log |grep ERROR |awk '{print $2}' |sort | uniq -c

http://www.kler.cn/a/4034.html

相关文章:

  • 20250118拿掉荣品pro-rk3566开发板上Android13下在uboot和kernel启动阶段的Rockchip这个LOGO标识
  • Mybatis面试题
  • vue 学习笔记 - 创建第一个项目 idea
  • Python毕业设计选题:基于django+vue的智能租房系统的设计与实现
  • windows 搭建flutter环境,开发windows程序
  • ubuntu22.04安装注意点
  • 软文写作技巧有哪些?建议收藏
  • 基于Java+Springboot+vue的网上商城购物系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】
  • Linux中的管道符与grep命令
  • 【数据库】Mysql数据库的三大范式1NF 2NF 3NF
  • vue 高德地图添加多个点标记
  • 速度与兼容性功能大比拼:7款浏览器测评,哪一款更好用
  • 基于云计算的Java版云HIS系统源码,已在公立二甲医院应用三年
  • 云原生周刊:K8s 在 v1.27 中移除的特性和主要变更
  • 社区之声|Grant Program支持Moonbeam生态壮大
  • 物理机CPU使用率报警
  • 蓝桥杯每日一真题——[蓝桥杯 2021 省 AB2] 负载均衡(优先队列,模拟)
  • 自动指出测试问题,TestGPT来袭,测试工程师,你准备好了么
  • ShowMeAI周刊 | AI独立开发者:帆船旅行但月入万刀;创业吧!新黄金时代来了;资本看好哪些创业方向;被AI震麻的一周again
  • 线程基础知识总结
  • 18个基础命令教你轻松拿捏华为设备的各种状态!-HCIA HCIP
  • leetcode 搜索插入位置(35)
  • GPS时间序列分析---剔除跳跃点,拟合时间序列
  • 基于springboot心理健康管理系统(程序+数据库+文档)014
  • 位置编码Positional Encoding
  • 3D Slicer学习记录(6)-使用PLUSapp连接WebCam并实现marker跟踪