Shell命令与awk,sed等价操作整理
需积分: 9 100 浏览量
更新于2024-11-17
收藏 3KB TXT 举报
本文主要探讨了在Shell脚本中,一些常见的命令如`cat`, `tac`, `grep`, `head`, `tail`, `cut`, `tr`, `wc`, `uniq`, `rev`, `basename`, `dirname`, `xargs`, `paste`, `cat -n`, `grep -n`, `cp`, `mv`, `echo`以及它们与`awk`和`sed`命令的等价用法。通过理解这些等价表达,可以灵活地在不同场景下选择合适的工具来处理文本数据。
1. `cat`与`awk`:
- `cat`用于连接文件并打印到标准输出。
- 等价的`awk`命令是:`awk '{print}'`
2. `cat -s`与`sed`:
- `cat -s`压缩连续的空白行。
- 等价的`sed`命令是:`sed '/./,/^$/!d'`
3. `tac`与`sed`:
- `tac`反向显示文件内容。
- 等价的`sed`命令是:`tac|sed '1!G;h;$!d'`
4. `grep`与`sed`:
- `grep patt`查找包含模式`patt`的行。
- 等价的`sed`命令是:`grep patt|sed '/patt/!d'`
- `grep -v patt`查找不包含模式`patt`的行。
- 等价的`sed`命令是:`grep -v patt|sed '/patt/d'`
5. `head`与`sed`:
- `head`显示文件的前10行。
- 等价的`sed`命令是:`head|sed '10q'`或`head -1|sed 'q'`
6. `tail`与`sed`:
- `tail`显示文件的末尾10行。
- 等价的`sed`命令是:`tail|sed -e ':a' -e '$q;N;11,$D;ba'`或`tail -1|sed '$!d'`
- `tail -f`持续监控文件的尾部。
- 等价的`sed`命令是:`tail -f|sed -u '/./!d'`
7. `cut`与`sed`:
- `cut -c10`显示每行的第10个字符。
- 等价的`sed`命令是:`cut -c10|sed 's/\(.\)\{10\}.*/\1/'`
- `cut -d: -f4`按冒号分隔,显示第4字段。
- 等价的`sed`命令是:`cut -d: -f4|sed 's/\(\([^:]*\):\)\{4\}.*/\2/'`
8. `tr`与`sed`:
- `tr 'A-Za-z' 'a-zA-Z'`将小写字母转换为大写,反之亦然。
- 等价的`sed`命令是:`tr A-Za-z|sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` 或 `tr a-zA-Z|sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- `tr -s ''`删除连续重复的字符。
- 等价的`sed`命令是:`tr -s ''|sed 's/\+//g'`
- `tr -d '\012'`删除所有换行符。
- 等价的`sed`命令是:`tr -d '\012'|sed 'H;$!d;g;s/\n//g'`
9. `wc -l`与`sed`:
- `wc -l`计算文件中的行数。
- 等价的`sed`命令是:`wc -l|sed -n '$='`
10. `uniq`与`sed`:
- `uniq`去除连续重复的行。
- 等价的`sed`命令是:`uniq|sed 'N;/^\(.*\)\n\1$/!P;D'`
11. `rev`与`sed`:
- `rev`反转每行的字符顺序。
- 等价的`sed`命令是:`rev|sed '/\n/!G;s/\(.\)\(.*\n\)/&\2\1/;//D;s/.//'`
12. `basename`与`sed`:
- `basename`提取路径中的文件名。
- 等价的`sed`命令是:`basename|sed 's,.*/,,'`
13. `dirname`与`sed`:
- `dirname`提取路径中的目录部分。
- 等价的`sed`命令是:`dirname|sed 's,[^/]*$,,'`
14. `xargs`与`sed`:
- `xargs`将标准输入转换为命令行参数。
- 等价的`sed`命令是:`xargs|sed -e ':a' -e '$!N;s/\n//;ta'`
15. `paste`与`sed`:
- `paste -s -d:`合并多行,并在每行间用冒号分隔。
- 等价的`sed`命令是:`paste -s -d:|sed -e ':a' -e '$!N;s/\n/:/;ta'`
16. `cat -n`与`sed`:
- `cat -n`显示行号。
- 等价的`sed`命令是:`cat -n|sed '='|sed '$!N;s/\n//'`
17. `grep -n`与`sed`:
- `grep -n patt`查找模式`patt`并在行前显示行号。
- 等价的`sed`命令是:`grep -n patt|sed -n '/patt/{=;p;}'|sed '$!N;s/\n/:/'`
18. `cp orig new`与`sed`:
- `cp orig new`复制`orig`文件到`new`文件。
- 等价的`sed`命令是:`sed 'wnew' orig`
19. `mv old new`与`sed`:
- `mv old new`移动或重命名文件。
- 在某些情况下,可以使用`sed`进行临时处理,但不能直接实现移动功能,因为`sed`不会改变原文件。
20. `echo`与`awk`:
- `echo`输出字符串。
- 在某些简单情况下,`awk`也可以用来输出字符串,例如:`echo 'text'` 可以用 `awk '{print "text"}'` 替代。
通过掌握这些等价命令,可以更灵活地在Shell脚本中处理文本数据,根据实际需求选择最适用的工具。理解这些转换可以帮助提高脚本的效率和可读性。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2013-01-16 上传
2007-04-08 上传
2009-07-24 上传
2007-08-07 上传
2019-03-24 上传
2007-12-19 上传
cavensong
- 粉丝: 0
- 资源: 1
最新资源
- JavaScript实现的高效pomodoro时钟教程
- CMake 3.25.3版本发布:程序员必备构建工具
- 直流无刷电机控制技术项目源码集合
- Ak Kamal电子安全客户端加载器-CRX插件介绍
- 揭露流氓软件:月息背后的秘密
- 京东自动抢购茅台脚本指南:如何设置eid与fp参数
- 动态格式化Matlab轴刻度标签 - ticklabelformat实用教程
- DSTUHack2021后端接口与Go语言实现解析
- CMake 3.25.2版本Linux软件包发布
- Node.js网络数据抓取技术深入解析
- QRSorteios-crx扩展:优化税务文件扫描流程
- 掌握JavaScript中的算法技巧
- Rails+React打造MF员工租房解决方案
- Utsanjan:自学成才的UI/UX设计师与技术博客作者
- CMake 3.25.2版本发布,支持Windows x86_64架构
- AR_RENTAL平台:HTML技术在增强现实领域的应用