位置: 编程技术 - 正文

Shell脚本学习指南之文本处理工具(shell脚本学习指南)

编辑:rootadmin

4.1 排序文本

4.1.1 行的排序未提供命令行选项时,整个记录会根据当前locale所定义的次序排序。在传统的C locale中,也就是ASCII顺序。

4.1.2 以字段排序-k选项的后面接着的是一个字段编号,或者是一对数字。每个编号后面都可以接一个点号的字符位置,或修饰符字母。

如果仅指定一个字段编号,则排序键值会自该字段的起始处开始,一直继续到记录的结尾(而非字段的结尾)。

如果给的是一对用逗号隔开的字段数字,则排序键值将由第一个字段值的起始处开始,结束于第二个字段值的结尾。使用点号表示字符位置。-k2.4, 5.6指的是从第二个字段的第四个字符开始比较,一直比到第五个字段的第六个字符。$ sort -t: -k1,1 /etc/passwd 以用户名称排序bin:x:1:1:bin:/bin:/sbin/nologinchico:x:::Chico Marx:/home/chico:/bin/bashharpo:x:::Harpo Marx:/home/harpo:/bin/ksh...

$ sort -t: -k3,3nr /etc/passwd 反省UID排序或-k3nr,3或-k3,3 -n -r都可以。

4.1.3 文本块的排序有时需要对多行记录组合而成的数据排序。以地址清单为例:$ cat my-friends# SORTKEY: Schlo, Hans JurgenHans Jurgen SchloUnter den Linden D- BerlinGermany

# SORTKEY: Jones, Adrian...

技巧是:利用awk识别段落间隔,在每个地址内暂时使用一个未用过的字符取代分行。sort看到的行就会变成这样:# SORTKEY: Schlo, Hans Jurgen^ZHans Jurgen Schlo^ZUnter den Linden ^Z...cat my-friends | 读取地址文件 awk -v RS=" " '{ gsub("n", "^Z"); print }' | 转换地址为单行 sort -f | 排序地址数据,忽略大小写 awk -v ORS="nn" '{ gsub("^Z", "n"); print }' | 恢复行结构 grep -v '# SORTKEY' 删除标记行1. 函数gsub()为全局性替换(global substitution),类似sed下的s/x/y/g结构。2. RS变量时输入数据的记录分隔器(Record Separator)。 通常输入数据以换行隔开,使每行成为单个记录。 RS=" "是一个特殊用法,指的是记录以空行隔开。3. ORS是输出记录分隔器。注:'{ action }'是对每个字段的操作,而RS,ORS都是对记录的设定。

4.1.5 sort的稳定性sort并不稳定。

4.2 删除重复sort -u是依据匹配的键值进行消除操作,而非匹配的记录。uniq有3个好用选项: -c在每个输出行之前加上该行重复的次数。 -d则用于仅显示重复的行。 -u仅显示未重复的行。

4.3 重新格式化段落fwt -w

4.4 计算行数、字数以及字符数wc的默认输出是一行报告,包括行数、字数以及字节数。可用选项:-c(字节数)、-l(行数)、-w(字数)。 4.6 提取开头或结尾数行 显示文件列表中每一个的前n条记录: head -n n [file(s)] head -n [file(s)] awk 'FNR <= n' [file(s)] sed -e nq [file(s)] sed nq [file(s)] 观察不断增长的系统信息日志,Ctrl-C停止tail。

推荐整理分享Shell脚本学习指南之文本处理工具(shell脚本学习指南),希望有所帮助,仅作参考,欢迎阅读内容。

Shell脚本学习指南之文本处理工具(shell脚本学习指南)

文章相关热门搜索词:shell脚本教学,shell脚本总结,shell脚本应用实战,shell脚本 教程,shell脚本应用实战,shell脚本学习指南,shell脚本学习指南,shell脚本 教程,内容如对您有帮助,希望把文章链接给更多的朋友!

Shell脚本学习指南之查找与替换介绍 3.1查找文本grep:使用POSIX定义的基本正则表达式(BRE)。egrep:使用扩展正则表达式(ERE)。fgrep:快速grep。使用优化的算法,匹配固定字符串而非正则

分享shell编程中的几个小技巧 1、打印一些头信息commanddilimiter…………dilimiter以分界符号dilimiter中的内容作为命令的标准输入常用在echo命令中,这样就避免了没输出一行就要使用一

linux中常用脚本和函数分享 #查找当前目录中是否存在指定目录,若不存在,则创建之functionmkdir_1{iftest!-d$1thenmkdir$1fi}#指定文件中的"prefix=.*"串替换为"prefix=/home/gnome-unicore-install2/usr/

标签: shell脚本学习指南

本文链接地址:https://www.jiuchutong.com/biancheng/376777.html 转载请保留说明!

上一篇:shell中冒号的特殊用法分享(shell中的括号)

下一篇:Shell脚本学习指南之查找与替换介绍(shell脚本 教程)

  • 年终双薪究竟该怎么算
  • 出口退免税备案表怎么填写
  • 所得税费用会影响营业利润吗
  • 商誉要摊销和减值吗?
  • 出租车发票可以重新打印吗
  • 税控服务费如何入账
  • 广告公司属于服务企业吗
  • 增值税加计递减额,这个科目如何使用
  • 收到的房租增值税专用发票可以抵扣吗
  • 个人转让著作权所得免征个人所得税吗
  • 实收资本认缴制期限
  • 以存货抵偿债务结转的相关存货跌价准备
  • 资产减值损失是
  • 国外预提税是什么
  • 发票密码区超出还能用吗
  • 个人交物业费开发票交税点吗
  • 航天发票上传不成功怎么手动上传
  • 慰问金怎么入账科目
  • 商贸企业固定资产计提折旧吗
  • 增值税的特殊销售方式有哪些?税务处理时怎样的?
  • 退货抵扣是什么意思
  • 删除文件需要管理员权限无法添加怎么办
  • 怎么限制路由器使用人数
  • 计算机系统结构第三版课后答案
  • linux yum update
  • linux设置壁纸的命令
  • php 数组定义
  • 企业的各项费用
  • 税收返还需要缴纳什么税
  • 湿地上有什么植物
  • 代开的发票需要企业盖章还是税务机关盖章?
  • FUXA个人学习总结(一)
  • 生产企业出口退税申报流程操作
  • 公司收取保证金违法吗
  • 模拟电子技术基础知识点总结
  • 前端都有哪些
  • 一般纳税人内账可以不提税吗
  • 出租房屋房产税计算
  • mac安装步骤
  • 买手机手续费怎么算的
  • Mysql 创建索引锁表
  • 已提足折旧固定资产
  • 管理费用怎样分摊归集到产品
  • 取现发放劳务费怎么做账
  • 为什么出口退税是贷方
  • 如何填写社会保障卡信息
  • 商誉的算法
  • 房地产开发成本费用明细表
  • 怎么看懂自己的收入纳税
  • 什么情况下使用for循环
  • 结转资金和结余资金
  • 外币财务报表的折算
  • 企业无形资产入账标准
  • 处置固定资产损失的账务处理
  • mysql常用功能
  • sqlserver存储过程实例详解
  • mysql在本地主机创建用户账号
  • windows如何显示键盘
  • XP系统怎么设置双屏幕
  • wlan device什么意思
  • 隐藏的系统
  • Ubuntu 14.04系统怎么安装Nvidia 私有显卡驱动?
  • 在u盘安装软件插上就能用
  • macbookzen
  • ubuntu 21.10安装
  • win7 u盘启动按哪个键
  • linux整理磁盘
  • node分页接口
  • [置顶]从lv2开始开挂的原勇者候悠闲的异世界生活
  • Node.js中的事件循环是什么意思
  • linux命令教程
  • 页面抓取的流程是什么
  • 手机屏幕适配
  • python struct库
  • [置顶]马粥街残酷史
  • 深圳市国家税务局赵雨婷
  • 研发材料占研发费用比例超出50%
  • 什么是企业融资,什么是政府融资
  • 税务有问题会罚多少钱?
  • 税务总局全国增值税发票查验平台
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设