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

新闻类网站排版网站建设石河子网站建设公司

新闻类网站排版网站建设,石河子网站建设公司,wordpress 登入页面,设计师导航网址Linux中的awk、sed、grep及正则表达式详解 简介 awk、sed和grep是Linux中文本操作的三大利器。 其中awk适用于取列#xff0c;sed适用于取行#xff0c;grep适用于过滤。 正则表达式 首先我们来介绍一下正则表达式#xff0c;正则表达式(regular expression)描述了一种…Linux中的awk、sed、grep及正则表达式详解 简介 awk、sed和grep是Linux中文本操作的三大利器。 其中awk适用于取列sed适用于取行grep适用于过滤。 正则表达式 首先我们来介绍一下正则表达式正则表达式(regular expression)描述了一种字符串匹配的模式pattern可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。 正则表达式是文本操作的好帮手。 以下是正则表达式的元字符及含义说明。 元字符功能^匹配行首$匹配行尾^$空行.匹配任意单个字符包括0次*匹配多个字符包括0次[ ]匹配指定范围内的任意单个字符[^]匹配不在指定范围内的任意字符.*匹配任意长度任意字符不包括0次..匹配子串保存搜索字符用来替换其他字符\匹配单词的开始其后任意字符必须作为单词的首部出现\匹配单词的结束其前任意字符必须作为单词的尾部出现x\{m\}匹配字符x出现的次数m次x\{m,\}匹配字符x出现的次数至少m次x\{m,n\}匹配字符x出现的次数至少m次不多于n次?匹配前面的字符1次或0次 有了正则表达式的帮助我们就可以正式开始来看文本操作三兄弟了。 awk awk 是对文本进行格式化的工具适合处理比较复杂的格式处理。有多个版本 1、new awk: nawk 2、gawk, awk awk 命令格式 awk [options] script file1 file2, ...awk [options] PATTERN {acticon} file1 file2, ...格式说明 pattern部分决定动作语句何时触发及触发事件BEGIN、END action 对数据进行处理放在{}内指明print、printf 最常用的是 print默认以空白字符分隔 $0 代表整行$1 代表第 1 段$2 代表第 2 段以此类推$NF 代表最后一个字段多个字段直接用逗号隔开 awk {print $1, $2} xxx.log 打印操作支持拼接打印如awk {print first $1, $2} xxx.log options 参数 参数含义-F输入分隔符默认以空白字符进行分隔-v输出分隔符默认为空格使用内置变量OFS来设置输出分隔符 awk内置变量 变量名含义FS输入字段分隔符默认空白字符一般需要加-FOFS输出字段分隔符默认是空格一般需要加-vNF分隔后的字段数量NR当前行的行号 实例 有时候我们想要拿到当前目录下的所有文件名但是如果直接 ls -a | grep ^- grep ^- 是过滤只显示文件下面会详细讲得到的结果是 ls -l | grep ^- # 输出 -rw-r--r-- 1 root root 487305 May 1 06:45 3d1.txt -rw-r--r-- 1 root root 10004085 May 1 06:45 3d1_image_urls.txt -rw-r--r-- 1 root root 167934 May 1 06:45 3d1_singleface.txt -rw-r--r-- 1 root root 9516780 May 1 06:45 3d1_urls.txt -rw-r--r-- 1 root root 1289925 May 1 06:45 adzz_3d1_urls.txt如果我们只想要文件名本身而不想要其他相关信息数据该怎么办呢我们观察到 ls -l 的输出信息是很有规律的并且就是以空白分隔的这时我们就可以使用 awk 命令ls -l | grep ^- | awk {print $9} 从而达到我们想要的效果 ls -l | grep ^- | awk {print $9} # 输出 3d1.txt 3d1_image_urls.txt 3d1_singleface.txt 3d1_urls.txt adzz_3d1_urls.txtsed sed 是一种流编辑器它一次处理一行内容。处理时把当前处理的行存储在临时缓冲区中称为“模式空间”接着用 sed 命令处理缓冲区中的内容处理完成后把缓冲区的内容送往屏幕。 命令格式 sed [options]... script inputfile参数 参数含义-n不输出模式空间即不自动打印-e多点编辑-f [PATH_TO_SCRIPT_FILE]从指定文件中读取编辑脚本-r支持使用扩展正则表达式-i直接编辑文件-i.bak备份文件并远处编辑 script 地址定界 不给地址对全文进行处理单地址 # 指定的行$ 最后一行/pattern/ 被此处模式所能匹配到的每一行 编辑命令 命令说明d删除模式空间匹配的行并立即启动下一轮循环p显示符合条件的行追加到默认输出之后a [\]text在指定行后面追加文本支持使用\n实现多行追加i [\]text在行前面插入文本c [\]text替换行为单行或多行文本w path/file保存模式匹配的行之指定文件r path/file读取指定的文件的文本至模式空间中匹配的行后为模式空间的行打印行号!模式空间中匹配行去反处理s///查找替换支持使用其他分隔符ss### 替换标记 g 行内全局替换p 显示替换成功的行w path/file 将替换成功的行保存至文件中 例高效地查看环境变量 sed -i s/a/v/g test 将文件中的 a 全部替换为 v sed替换格式是sed -i ‘s/要替换的内容/替换成的内容/g 文件名 比如说我们要查看环境变量 echo $PATH # 输出 # /home/ps/anaconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin我们知道这样直接打印的话输出是按照冒号来进行分隔的可读性不佳为了改善这一点我们可以用sed将冒号替换为换行符 echo $PATH | sed s/:/\n/g # 输出 # /home/ps/anaconda3/condabin # /usr/local/sbin # /usr/local/bin # /usr/sbin # /usr/bin # /sbin # /bin # /usr/games # /usr/local/games # /snap/bin这样可读性就会好很多。 grep grep 强大的文本搜索工具根据模式搜索文本并将符合模式的文本行显示出来。 命令格式 grep [option] pattern [file] option 参数 参数含义-i忽略字符大小写-n显示匹配的行号-v显示没有被匹配的行即反转查找--color将匹配到的字符以高亮颜色显示出来-c统计匹配的行数-o仅显示匹配到的字符串-q静默模式不输出任何信息-w匹配整个单词-Aafter显示后行-Bbefore显示前行-Ccontext显示前后行-E相当于egrep即grep -E grep 例 这里我们以很常用的查看目录中文件/目录的个数命令为例分析此例中grep的用法 这是笔者在网上搜到的查看目录中的文件数ls -l | grep ^- | wc -l的命令我们来看一下他都干了什么。 首先要明确中间的两道 | 是管道不了解的读者可以简单地理解为将前一命令的输入直接作为后一命令的输出。 我们先ls当前目录手动数一下有多少文件。 蓝色字体的都是目录白色字体则是一些文本文件。可以看到当前目录下有3个文件5个目录。 再用查到的命令来试一下ls -l grep ^- | wc -l 没有问题与预期相符。 第一条命令ls -l我们来看打印输出了什么 是各个文件/目录的一些详细信息。我们注意到每一行的第一个字符d或者-分别代表了本行表示的是一个目录还是一个文件。相必整条命令应该也是借助这一点来判断当前目录下的子目录/文件个数的。 我们再看第二条命令grep ^- 果然我们之前提到过正则表达式的^就是来匹配第一个字符的而要查的是文件的个数自然应该找第一个字符为-的行。那找目录是不是就是应该匹配行首的d呢我们来试一下 果然与我们数的子目录个数也是符合的。这样我们就知道了怎样来查看当前目录下子目录个数。 另外读者可以自己试一试既然一个目录内不是子目录就是文件那能不能使用grep的反转查找参数-v来统计子目录数呢 第三条命令是 wc -l我们知道wc命令是用来统计字符数的而加上-l命令则可以统计行数可以支持我们grep过滤并通过行数来查看文件数的需求。但是我们注意到grep命令本来就自带一个参数-c来统计匹配成功的行数那是不是可以直接得到文件数呢我们来试一试ls -l | grep -c ^- 可以看到也是OK的。是一种更简便的写法。
http://www.huolong8.cn/news/187238/

相关文章:

  • 泉州建设工程质量网站太钢建设公司官网
  • 快速搭建一个网站wordpress配置qq邮件
  • 专门做婚庆的网站有哪些有网络打不开网页怎么回事
  • 中国廉洁建设网是什么正规网站吗京东云 安装wordpress
  • 曰本孕妇做爰网站e4a怎么做网站app
  • 我想做个网站 详解怎么做中小企业网站建设公司首选
  • 网站建设的步骤教程下载专题网站建设解决方案
  • 当涂 微网站开发公司网站空间 更换
  • 网站设计风北京工业产品设计公司
  • 大学一学一做视频网站wordpress调用分类图片大小
  • 知名建站企业哪家好国外网站建设模板
  • 自己做的网站如何引流医院建设网站
  • 用源码做自己的网站网页ui设计师培训
  • 我想卖自己做的鞋子 上哪个网站好福州网站建设印秀
  • 如何制作网站导航栏新手编程软件哪个好用
  • 手机自己做网站吗网站开发方案案例
  • 网站建设费用设计著名的响应式网站有哪些
  • 淘客网站怎么做排名免费一键生成原创文章
  • 苏州集团网站设计开发怎样做后端数据传输前端的网站
  • 网站定制公司地址邢台手机网站制作
  • 建设公司怎么做网站运营百度极速版
  • 申报网站建设理由 模板设计之家房屋装修游戏破解版
  • 常州做网站推广网站可以用cdr做吗
  • 网站对接app如何制作一个网址
  • 南通网站制作公司哪家好手机写代码的软件
  • 上海外包公司网站建设17做网站广州沙河
  • 烟台房产网站建设做网站有用吗
  • 网站开发 改进wordpress主题里加广告
  • 做网站销售工资做公司网站视频
  • 美度手表网站国外装修网站模板