位置: 编程技术 - 正文

在Linux上使用GNU sed的方法(linux-gnu)

编辑:rootadmin

推荐整理分享在Linux上使用GNU sed的方法(linux-gnu),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux怎么使用gcc,linux中gnu的含义是什么,linux中的gnu的含义,linux怎么使用gcc,linux中的gnu,gnu linux编程指南,linux中的gnu的含义,linux中的gnu,内容如对您有帮助,希望把文章链接给更多的朋友!

Linux 基金会宣布了一个全新的 LFCS(Linux 基金会认证系统管理员(Linux Foundation Certified Sysadmin))认证计划。这一计划旨在帮助遍布全世界的人们获得其在处理 Linux 系统管理任务上能力的认证。这些能力包括支持运行的系统服务,以及第一手的故障诊断、分析,以及为工程师团队在升级时提供明智的决策。

处理 Linux 中的文本流

Linux 将程序中的输入和输出当成字符流或者字符序列。在开始理解重定向和管道之前,我们必须先了解三种最重要的I/O(输入和输出(Input and Output))流,事实上,它们都是特殊的文件(根据 UNIX 和 Linux 中的约定,数据流和外围设备(设备文件)也被视为普通文件)。

在 > (重定向操作符) 和 | (管道操作符)之间的区别是:前者将命令与文件相连接,而后者将命令的输出和另一个命令相连接。

# command >file

# command1 | command2

由于重定向操作符会静默地创建或覆盖文件,我们必须特别小心谨慎地使用它,并且永远不要把它和管道混淆起来。在 Linux 和 UNIX 系统上管道的优势是:第一个命令的输出不会写入一个文件而是直接被第二个命令读取。

在下面的操作练习中,我们将会使用这首诗——《A happy child》(作者未知)

使用 sed

sed 是流编辑器(stream editor)的缩写。为那些不懂术语的人额外解释一下,流编辑器是用来在一个输入流(文件或者管道中的输入)执行基本的文本转换的工具。

sed 最基本的用法是字符替换。我们将通过把每个出现的小写 y 改写为大写 Y 并且将输出重定向到 ahappychild2.txt 开始。g 标志表示 sed 应该替换文件每一行中所有应当替换的实例。如果这个标志省略了,sed 将会只替换每一行中第一次出现的实例

基本语法:

#sed's/term/replacement/flag'file

我们的样例:

#sed's/y/Y/g' ahappychild.txt > ahappychild2.txt

如果你要在替换文本中搜索或者替换特殊字符(如 /,,&),你需要使用反斜杠对它进行转义。

在Linux上使用GNU sed的方法(linux-gnu)

例如,我们要用一个符号来替换一个文字,与此同时我们将把一行最开始出现的第一个 I 替换为 You。

#sed's/and/&/g;s/^I/You/g' ahappychild.txt

在上面的命令中,众所周知 ^(插入符号)是正则表达式中用来表示一行开头的符号。

正如你所看到的,我们可以通过使用分号分隔以及用括号包裹来把两个或者更多的替换命令(并在它们中使用正则表达式)连接起来。

另一种 sed 的用法是显示或者删除文件中选中的一部分。在下面的样例中,将会显示 /var/log/messages 中从6月8日开始的头五行。

#sed-n '/^Jun 8/ p'/var/log/messages |sed-n 1,5p

请注意,在默认的情况下,sed 会打印每一行。我们可以使用 -n 选项来覆盖这一行为并且告诉 sed 只需要打印(用 p来表示)文件(或管道)中匹配的部分(第一个命令中指定以“Jun 8” 开头的行,第二个命令中指定一到五行)。

最后,可能有用的技巧是当检查脚本或者配置文件的时候可以保留文件本身并且删除注释。下面的单行 sed 命令删除(d)空行或者是开头为#的行(| 字符对两个正则表达式进行布尔 OR 操作)。

#sed'/^#|^$/d' apache2.conf

uniq 命令

uniq 命令允许我们返回或者删除文件中重复的行,默认写到标准输出。我们必须注意到,除非两个重复的行相邻,否则uniq 命令不会删除他们。因此,uniq 经常和一个前置的 sort 命令(一种用来对文本行进行排序的算法)搭配使用。默认情况下,sort 使用第一个字段(用空格分隔)作为关键字段。要指定一个不同的关键字段,我们需要使用 -k 选项。

样例

du –sch /path/to/directory/* 命令将会以人类可读的格式返回在指定目录下每一个子文件夹和文件的磁盘空间使用情况(也会显示每个目录总体的情况),而且不是按照大小输出,而是按照子文件夹和文件的名称。我们可以使用下面的命令来让它通过大小排序。

#du-sch /var/* | sort -h

你可以通过使用下面的命令告诉 uniq 比较每一行的前6个字符(-w 6)(这里是指定的日期)来统计日志事件的个数,而且在每一行的开头输出出现的次数(-c)。

#cat/var/log/mail.log |uniq-c -w6

使用awk输出文本中的字段和列的方法 首先我们要知道,awk能够自动将输入的行,分隔为若干字段。每一个字段就是一组字符,它们和其他的字段由一个内部字段分隔符分隔开来。如果你熟

在Linux上使用VirtualBox的命令行管理界面的方法讲解 VirtualBox拥有一套命令行工具,你可以使用VirtualBox的命令行界面(CLI)对远程无界面的服务器上的虚拟机进行管理操作。在这篇教程中,你将会学到如何在

Linux怎么安装迅雷极速版? Linux好用的下载工具比较少,本文将帮你在Ubuntu、Fedora等Linux上安装迅雷下载。软件名称:迅雷会员尊享版V2.0..简体中文绿色免费版软件大小:.5MB

标签: linux-gnu

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

上一篇:Linux系统一些重要的学习方法及路线图详解(linux重复命令)

下一篇:使用awk输出文本中的字段和列的方法(awk结果输出到文件)

  • 增值税的专用发票含税吗
  • 年报补交企业所得税如何写会计分录
  • 本年计算扣除限额的基数怎么算
  • 建筑业确认收入的时间是按进度计量么
  • 技术开发收入免征所得税吗
  • 一般纳税人企业所得税政策最新2023税率
  • 小微企业城建税优惠政策2022
  • 发票弄丢下一步怎么办
  • 收到赔偿款怎么做分录
  • 计提固定资产折旧时可以先不考虑固定资产残值的方法是
  • 作业成本管理的作用
  • 农产品加计扣除政策2023最新
  • 补缴的公积金可以抵扣个税吗
  • 没有汇算清缴可以弥补以前年度亏损吗
  • 增值税普通发票几个点
  • 空调安装企业能申请工程发票吗?
  • 已抵扣发票红冲后发票还给对方公司
  • 计提的管理费用要结转吗
  • 行政事业性收费计入什么科目
  • 高危行业企业要设置什么机构
  • 记账错误是什么意思
  • 无形资产的定义和特征
  • 万份收益是什么意思0.6
  • 个人所得税征收计算方法
  • 银行承兑汇票怎么开
  • 公益性捐赠的个税
  • 商业承兑汇票需要银行审核吗
  • 苹果macos catalina10.15.7
  • 银行承兑汇票和银行汇票的区别
  • 公司的现金管理规定
  • 三证合一后的税务登记证查询方法
  • 网络平台上进行网络营销
  • isahelp是什么进程
  • 骑自行车的好处功效与作用
  • js日期字符串转换为指定格式的日期
  • php字段
  • 企业所得税中的其他业务收入包括
  • 业务招待费用列支范围
  • 幼儿园会计需要什么条件
  • 要点初见:Stable Diffusion NovelAI模型优质文字Tag汇总与实践【魔咒汇总】
  • ChatGPT全面升级,GPT4支持多模态数据。
  • php image
  • kill命令用法
  • python socket发送文件
  • 推广费的比例
  • 企业借款生产存货发生的借款费用均应予以资本化
  • 不动产投资缴纳什么税
  • 记账凭证基本内容口诀
  • 开具增值税专用发票和普通发票的区别
  • 社保和公积金个人和单位缴纳比例
  • 增值税一般纳税人企业对同属于增值税
  • 家电销售范围包括哪些
  • 公司送客户的礼品账务处理
  • 销售产品收取的价款
  • 预付差旅费属于什么类型
  • 商品销售成本的计算方法中,商品零售企业
  • 投出业务会计分录
  • Sql Server 2012 转换函数的比较(Cast、Convert和Parse)
  • VirtualBox虚拟机中文免费
  • 系统分区引导修复
  • ubuntu下载net-tools
  • centos which
  • Centos 6.4 64位版命令行下设置无线网卡教程
  • win10系统ie浏览器版本怎么看
  • windows7模块安装程序可以关闭吗
  • Ubuntu 14.04 LTS中安装fcitx中文输入法的教程
  • win7显示桌面的组合键
  • [置顶] clauvio,Twitter小老鼠
  • 解决在ios8中, cocos2dx 2.x版本里CCClippingNode没有效果的问题
  • cocos2dx开发的游戏
  • jquery的实现原理
  • 纹理烫男
  • nodejs 程序 打包服务端
  • javascript的引用类型
  • python 字符
  • bootstrap的组件
  • 安徽监狱待遇qzzn
  • 国家税务局发票查询
  • 如何强化理论武装
  • 如何进行税务筹划的方法
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设