位置: 编程技术 - 正文

利用linux命令行工具进行文本行过滤的方法(linux命令怎么执行)

发布时间:2024-02-26

推荐整理分享利用linux命令行工具进行文本行过滤的方法(linux命令怎么执行),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:使用linux命令,linux如何用,linux命令怎么执行,linux命令怎么执行,linux如何用,使用linux命令,使用linux命令,使用linux命令,内容如对您有帮助,希望把文章链接给更多的朋友!

在日常工作中会遇到需要筛选过滤要查看的日志等文本文件的任务,例如需要查看日志文件的最后几行等。下面总结一下常见的对文本行过滤的方法。一起去看看吧!

常用命令行工具

接下来主要使用的是head,tail,sed和awk,这几个工具。其中sed和awk工具非常强大,使用它们来进行文本的过滤可能有点大材小用,不过基本上所有的任务都可以通过head和tail两个命令来完成,而且head和tail日常使用更加方便。

用法示例

准备工作

输入下面命令,生成一个测试用的文件。

$ seq -f "Line No %g" > lines.txt

只显示文本的前3行

可以通过head命令来完成,具体命令和输出如下:

$ head -n 3 lines.txt

Line No 1

Line No 2

Line No 3

或者通过sed命令来完成,具体命令和输出如下:

$ sed -n '1,3p' lines.txt

Line No 1

Line No 2

Line No 3

awk命令也可以完成

$ awk 'NR<=3' lines.txt

Line No 1

Line No 2

Line No 3

只显示文本的最后3行

使用tail命令来完成,具体命令和输出如下:

$ tail -n 3 lines.txt

Line No 8

Line No 9

Line No

只显示文本的第5行到最后1行

使用tail命令来完成的方法:

$ tail -n +5 lines.txt

Line No 5

Line No 6

Line No 7

Line No 8

Line No 9

Line No

sed命令来完成:

$ sed -n '5,$p' lines.txt

Line No 5

--略--

Line No

用awk来完成:

$ awk 'NR>=5' lines.txt

Line No 5

--略--

Line No

只显示文本的倒数第3行到第1行

用head来完成:

$ head -n -2 lines.txt

Line No 1

利用linux命令行工具进行文本行过滤的方法(linux命令怎么执行)

Line No 2

Line No 3

Line No 4

Line No 5

Line No 6

Line No 7

Line No 8

只显示文本的第6行到第8行

用head和tail两个工具:

$ < lines.txt head -n 8 | tail -n 3

Line No 6

Line No 7

Line No 8

sed的方法:

$ sed -n '6,8p' lines.txt

Line No 6

Line No 7

Line No 8

awk的方法:

$ awk '(NR>=6)&&(NR<=8)' lines.txt

Line No 6

Line No 7

Line No 8

只显示文本奇数行或偶数行

sed命令生成奇数行

$ sed -n '1~2p' lines.txt

Line No 1

Line No 3

Line No 5

Line No 7

Line No 9

sed命令生成偶数行

$ sed -n '0~2p' lines.txt

Line No 2

Line No 4

Line No 6

Line No 8

Line No

awk命令生成奇数行

$ awk 'NR%2' lines.txt

Line No 1

Line No 3

Line No 5

Line No 7

Line No 9

awk命令生成偶数行

$ awk '(NR+1)%2' lines.txt

Line No 2

Line No 4

Line No 6

Line No 8

Line No

小结

linux系统的一个有名的特点是绝大多少文件都是文本文件,这些文件都可以通过上面的方法来查看特定的行。另外linux命令行工具也非常灵活,完成一件任务,不是只有一种方法,有很多方法可以实现,这也是linux好玩的地方。在文本过滤方面,sed和awk命令还有很多强大的用法,大家有兴趣的话可以深入研究一下。

从Vim中访问shell或者运行外部命令的方法 Vim正如你可能已经了解的那样是一个包含很多特性的强大的编辑器。我们已经写了好多关于Vim的教程,覆盖了基本用法、插件,还有一些其他的有用的

linux的Sudo/su授权命令详解 由于Ubuntu是基于Debian的操作系统,在默认的情况下,是没有超级用户(superuser,root)的,但有些系统操作必须有超级用户的权限才能进行,如手动释放内存

Linux basename命令的使用详解 关于LinuxShell命令basename的使用总结。以下操作在Ubuntu.BashShell中通过。最近在使用shell脚本时需要获取脚本执行时的名称,一般采用$0来获取脚本执行

标签: linux命令怎么执行

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

上一篇:Linux编程时出现Segmentation fault错误如何解决?(linux codec)

下一篇:从Vim中访问shell或者运行外部命令的方法(vim中执行shell命令)

  • 基本保险包括
  • 增值税进项税额加计抵减会计处理
  • 应收账款和应付账款可以抵消吗
  • 企业之间借款利息进项税可以抵扣吗
  • 小规模纳税人企业购进货物和接受应税劳务时
  • 财务报表申报错误怎么办
  • 应付股东现金股利通过什么核算
  • 出租的城镇土地由谁交城镇土地使用税
  • 企业如何加强应收账款的管理
  • 记账凭证填制流程是什么
  • 差额发票和全额发票的税率
  • 公司成立前购买的设备算个人还是公司
  • 未结转损益可以结账吗
  • 资产的税务处理要注意什么
  • 异地缴纳个人所得税
  • 企业盈利后又亏损怎么算
  • 交上月增值税的凭证
  • 个人房屋租赁税率2023年
  • 个人汽车租给公司租金需多少钱?
  • 含税销售额的计算公式是什么意思
  • 进项票入账但是不抵扣怎么做账
  • 印花税零申报怎么申报不了
  • 以前季度所得税表怎么作废
  • 面粉厂怎样做帐,税率是多少?
  • 企业合并的会计分录
  • 营改增建筑业
  • 关联业务往来年度报告表
  • 厂区地面硬化的意义
  • 施工企业内部往来核算方法包括( )
  • 前端向后端发送请求
  • 单位向员工出租房屋要交增值税吗
  • 押金收不回的会计分录
  • 做事应该怎么做
  • 工伤单位支付
  • 销售费用中业务费包括哪些
  • cefres.dll是什么
  • 销货方开具红票,购货方怎么入账
  • 土地承包经营权和土地经营权区别
  • 约书亚树国家公园
  • 会计财务报表的编制步骤
  • 进项税不得抵扣的意思
  • 外请培训老师的路费谁承担
  • 微信第三方登录信息修改
  • thinkphp log
  • r在数据分析中表示什么意思
  • es6面试题promise
  • phpcms官网打不开
  • 小企业会计准则和一般企业会计准则的区别
  • 调整以前年度错账会计分录怎么做
  • 免税公司专用发票是什么
  • 增值税起征点适用于哪些
  • 短期借款会计分录例题及答案
  • 销货清单要放凭证里吗
  • 实行核定征收印花税
  • 自产产品对外捐赠要确认收入吗
  • 餐厅餐具如何使用
  • 合同权利义务包含债务吗
  • 9个点的税是多少
  • 单位收风险金是什么意思
  • 公司办公室买的茶叶怎么入账
  • 什么叫做未入账金额
  • 注册资金没显示
  • 企业利润率计算公式是怎样的
  • mysql怎么查询数据表
  • mysql 300万条数据
  • windows XP+Fedora 8+solaris 11三系统安装攻略
  • win8.1怎么安装appx没有许可证
  • winadslave.exe - winadslave是什么进程
  • 远程控制安全
  • Remoterm.exe - Remoterm是什么进程 有什么用
  • 如何卸载windows media player
  • Win10 TH2正式版偷偷恢复/篡改成对应的预装应用
  • win7蓝屏0x000000d1
  • texturepackergui
  • u3d怎么导入贴图
  • 泛型类泛型接口泛型方法
  • [置顶]bilinovel
  • 基于jquery的移动端ui框架
  • 图片在线预览html5
  • 脚本 python
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号