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

深圳网站制作网站建设零基础网站制作视频教程

深圳网站制作网站建设,零基础网站制作视频教程,近三天时政热点,dede织梦仿站网站建设简介 本文主要介绍 Linux 系统的两个神级工具#xff1a;sed 和 awk #xff0c;他们是Linux高手们必备的技能#xff0c;很值得我们去研究的东西。 这里是我在网上书上收集的相关资料#xff0c;因为这两个工具很有名也很重要#xff0c;所以这些资料会帮助我更好的了解…简介 本文主要介绍 Linux 系统的两个神级工具sed 和 awk 他们是Linux高手们必备的技能很值得我们去研究的东西。 这里是我在网上书上收集的相关资料因为这两个工具很有名也很重要所以这些资料会帮助我更好的了解和熟悉它们。 什么是sed 在《sed and awk》一书中1.2 A Stream Editor的解释是 Sed本质上是一个编辑器但是它是非交互式的这点与VIM不同同时它又是面向字符流的输入的字符流经过Sed的处理后输出。这两个特性使得Sed成为命令行下面非常有用的一个处理工具。 Sed本身是一个管道命令可以分析 standard input 的主要是用来分析关键字的使用、统计等此外还可以将数据进行替换、删除、心中、选取特定行等功能。 基本概念 sed命令的语法如下所示 sed [-nefr] [动作]参数说明 -n : 使用安静模式一般所有来自STDIN的数据会被列出到屏幕上但是 -n 在可以只列出经过 sed 处理过的那一行。 -e : 直接在命令行模式上进行 sed 的动作编辑。 -f : 直接将 sed 的动作卸载一个文件内 -f filename 则可以执行 filename 内的 sed 动作。 -r : sed 的动作支持的是扩展型正则表达式的语法默认是基础正则表达式语法。 -i : 直接修改读取的文件内容而不是由屏幕输出。 动作说明 [n1],[n2] function n1n2不见得会存在一般代表选择进行动作的行数。举例来说如果我的动作是需要在 10 到 20 行之间进行的则10,20[动作行为] function 有下面这些参数 a新增a 的后面可以接字符串而这些字符串会在新的一行出现目前的下一行。 c替换c 的后面可以接字符串这些字符串可以替换n1n2之间的行 d删除因为是删除所以 d 后面通常不接任何参数。 i插入i 的后面可以接字符串而这些字符串会在新的一行出现目前的上一行。 p打印也就是将某个选择的数据打印出来通常 p 会与参数 sed -n 一起运行。 s替换可以直接进行替换工作。通常这个 s 的动作可以匹配正则表达式例如1,20s/old/new/g 就是。 关于 sed 的一些常见使用 以行为单位的新增或删除功能 案例一 nl /etc/passwd | sed 2,5d说明 sed 的动作为 ‘2,5d’那个 d 就是删除命令运行的效果就是把2~5行给删除。 需要注意的是原本应该是要执行 sed -e 才对没有 -e 也行。 另外还需要注意的一点sed 后面接的动作请务必要以 ‘’ 两个单引号括住。 如果你只想删除第二行那么命令就是nl /etc/passwd | sed ‘2d’。 如果你想删除第三行到最后一行那么就可以这么写nl /etc/passwd | sed ‘3,$d’ 注$表示最后一行。 案例二 nl /etc/passwd | sed 2a drink tea说明 命令执行的效果就是在第二行后面也就是第三行加上drink tea字样。 如果你想在第二行前面加上字符串那么你可以这样nl /etc/passwd | sed ‘2i drink tea’ 注2a 中的 a 是指第二行后面而 2i 中的 i 则是指第二行的前面。 案例三 nl /etc/passwd | sed 2a drink tea or ......\ drink beer说明 上面的命令的执行效果是在第二行后面加入2行字。 在每一行的后面必须要以反斜杠 来进行新行的增加。 以行为单位的替换与显示功能 案例一 nl /etc/passwd | sed 2, 5c No 2-5 number说明 上面的命令的执行效果是将第2~5行的内容替换成No 2-5 number 案例二 nl /etc/passwd | sed -n 5,7p说明 上面的命令执行的效果是仅列出文件中的第5~7行的内容。 命令中的 -n 代表的是安静模式但是这个参数建议加上。 案例三 sed s/要被替换的内容/新的内容/g说明 以上命令执行的效果就是替换掉指定内容。 案例四 下面是记录一次获取IP数据的过程 第一步先查看源信息利用 /sbin/ifconfig 查询 IP。 /sbin/ifconfig eth0注我们的目的是要获得IP数据那么先利用关键字找出那一行。 第二步利用关键字配合 grep 选取出关键的一行数据。 /sbin/ifconfig eth0 | grep inet addr注因为只需要IP数据所以接下来就是把不需要的内容都删掉那么就需要一个正则表达式来帮助实现 ^.*inet addr:第三步将 IP 前面的部分予以删除 /sbin/ifconfig eth0 | grep inet addr |\ sed s/^.*inet addr://g注上面的命令就把 IP 前面的数据删掉了那么接下来就是把 IP 后面的数据也删掉此时的正则表达式则是 Bcast.*$第四步将 IP 后面的部分予以删除 /sbin/ifconfig eth0 | grep inet addr |\ sed s/^.*inet addr://g | sed s/Bcast.*$//g这样就能把 IP 截取出来了~~~ 案例五 这里主要是展示 sed 与正则表达式的配合使用。 假设我想在一个文件你自己新建或者已有的主要是测试而已获取MAN字样的那几行数据但是#在内的批注我不需要而且空白行也不要。 第一步先使用 grep 将关键字 MAN 所在行取出来。 cat /home/man.config | grep MAN第二步删除掉批注之后的数据。 cat /home/man.config | grep MAN | sed s/#.*$//g第三步那么接下来就是把空白行删除掉。 cat /home/man.config | grep MAN | sed s/#.*$//g |\ sed ^$/d直接修改文件内容慎重 首先要特别提醒的是要练习 sed 修改文件内容的时候不能用任何系统配置文件最好是自己新建一个测试文本来测试练习。 案例(一) sed -i s/\.$/\!/g test.txt说明 上面命令执行效果是利用 sed 将test.txt内的每一行结尾为. 的换成 命令中的 -i 参数可以让你的 sed 直接去修改后面接的文件内容而不是由屏幕输出。 案例二 sed -i $a # This is a test test.txt说明 上面命令执行的效果是利用 sed 直接在test.txt最后一行加入 “This is a test”。 由于 $ 代表的是最后一行而 a 的操作是新增因此该文件最后新增。 什么是 awk 简单来说awk 是一个数据处理工具。 相比于 sed 常常作用于一整行的处理awk 则比较倾向于将一行分成数个字段来处理。因此awk 相当适合处理小型数据的数据处理。 对于编程语言来讲awk 是一种便于使用且表达能力强的程序设计语言可应用于各种计算和数据处理任务。 基本概念 基本语法 awk 条件类型1{动作1} 条件类型2{动作2} ... filenameawk 后面接两个单引号病加上大括号{}来设置想要对数据进行的处理动作。 awk 可以处理后续接的文件也可以读取来自签个命令的 standardoutput。 如前面说的awk 主要是处理每一行的字段内的数据而默认的字段的分隔符为空格键或者[tab]键。 比如 last -n 5 // 仅取出登陆者的数据前五行last 可以将登陆者的数据取出来如果我还要在这些信息中取出账号与登陆者的IP且账号与IP之间以[tab]隔开那么可以这么改命令 last -n 5 | awk {print $1 \t $3}上面是 awk 最常使用的动作通过 print 的功能来讲字段的数据列出来字段的分割则以空格键或者[tab]按键来隔开。 上面的例子中在每一行的每个字段都是有变量名称的那就是$1,$2等变量名称。 备注$1 指的就是第一列但是 $0 则是代表一整行第一行。 上面的例子中整个awk的处理流程 1读入第一行并将第一行的数据填入$0,$1,$2等变量中 2依据条件类型的限制判断是否需要进行后面的动作 3昨晚所有的动作与条件类型 4若还有后续的行的数据则重复上面1~3的不知直到所有的数据都读完为止。注awk是以行为一次处理的单位而以字段最小的处理单位。 对于上面的案例指令 last -n 5 … 来讲有几点需要注意的 列出每一行的账号就是$1。 列出目前处理的行数(那就是 awk 内的 NR 变量)。 并且说明该行有多少个字段就是 awk 内的 NF 变量。 注意 awk 后续的所有动作都是以单引号 “” 括住的由于单引号与双引号都必须是成对的所以 awk 的格式内容如查想要以 print 打印时记得非变量的文字部分包含一小节 printf 提到的格式中都需要使用双引号来定义出来因为单引号已是 awk 的命令固定用法了。 last -n 5 | awk {print $1 \t lines: NR \t lines: NR \t columes: NF}awk的一些常见使用 awk 的运算符 大于 小于 大于或等于 小于或等于 等于 不等于 ! 值得关注的是那个等于 “” 的符号因为 逻辑运算上面也就是所谓的大于小于等于等判断式上面习惯上是以来表示的。 如果是直接给与一个值例如变量设置时就直接使用 而已。 案例一 cat /etc/passwd | \awk {FS:} $3 10 {print $1 \t $3}说明上面的指令运行的效果是查阅第三列小于10以下的数据并且仅列出账号与第三列。在 /etc/passwd 当中是以冒号:来作为字段的风该文件中第一字段为账号第三字段则是UID 案例二 cat /etc/passwd | \awk BEGIN {FS:} $3 10 {print $1 \t $3}说明由于案例一中并没有显示出第一行的数据那么此命令则是把第一行也显示出来了。利用 BEGIN 关键字预先设置 awk 的变量。 案例三 此外 awk 还可以进行计算功能。 比如有一个文件内容如下 name 1st 2nd 3th 小A 1000 1000 1000 小B 2000 2000 2000 小C 3000 3000 3000 那么怎么计算每个人的总额呢而且还需要格式化输出那么可以这样思考 第一行只是说明所以第一行不要进行加总NR1时处理。 第二行以后就会有加总的情况出现NR2以后处理。 cat test.txt |awk NR1 {printf %10s %10s %10s %10s %10s\n,$1,$2,$3,$4, Total } NR2 {total $2 $3 $4 ; printf %10s %10d %10d %10d %10.2f \n, $1, $2, $3, $4, total}说明 所有 awk 的动作即在{}内的动作如果有需要多个命令来辅助是可利用分号;间隔或者直接以[Enter]按键来隔开每个命令上面则是摁了三次。 逻辑运算中如果是等于的情况则务必使用两个等号 格式化处输出时在 printf 的格式设置当中务必加上 n 才能实现分行。 与 bash 、shell 的变量不同在 awk 当中变量可以直接使用不需要加上 $ 符号。
http://www.ho-use.cn/article/10819828.html

相关文章:

  • 用什么网站可以做电子书设计网页代码源代码
  • 贵州省城乡住房和建设厅网站老干支部网站建设方案
  • 电商网站首页设计规范手机上的软件网站建设
  • 化工原材料网站建设怎么学平面设计啊
  • 自己可以做百度网站吗电子商务教材电子版
  • 柯城网站建设免费在线观看高清影片
  • 大流量网站开发网站备案被注销
  • 联英人才网重庆招聘网百度seo排名优化助手
  • 成都大丰网站建设例表网网站排名优化服务商
  • 英文网站建设 潍坊手机电商网站 模板
  • 建设外贸企业网站wordpress 小学生
  • 常熟市住房建设局网站门户网站设计与开发
  • 做家常便饭网站韶关住房和城乡建设网站
  • 建工网官方网站标准网站建设哪家便宜
  • 微网站如何建立的地下城钓鱼网站怎么做
  • 可以做翻译兼职的网站有哪些wordpress服务器要求
  • 重庆秀山网站建设价格google chrome官网
  • 怎么建设网站最便宜公司网站简介怎么做
  • 山西推广型网站制作风铃网做微网站要钱吗
  • 动漫网站怎么做的郴州seo公司
  • 安徽外贸网站google建站网站建设论文3000字范文
  • 怎么建立图片的网站吗wordpress 插件 块
  • 网站建设维护费最新军事新闻热点事件
  • 创建一个网站需要什么wordpress小绿锁
  • 简述建设一个网站的具体步骤6桂林生活网二手房市场
  • 惠州网站建设教程自己做网站服务器多少钱
  • 网站开发中什么是站点青岛做网站eoe
  • 票务网站开发什么是门户类型的网站
  • 做视频素材网站网站结构是体现的
  • c2c网站特点wordpress建影视网站