- 浏览: 393100 次
- 性别:
- 来自: 天津
文章分类
- 全部博客 (196)
- window编程 (18)
- FLEX (37)
- 数据库 (5)
- Java---Struts2 (8)
- Window相关知识 (4)
- 网站建设相关知识 (2)
- java基础知识 (6)
- C# (8)
- 虚拟化 (3)
- 服务器--sound server (1)
- 网络协议 (5)
- Linux (21)
- linux-命令 (3)
- Windows-2008R2 (1)
- VBScript,异常处理 (1)
- windows域 (1)
- 弦歌不辍 (1)
- 语言---c++ (16)
- MFS (1)
- grub (1)
- 技术介绍 (3)
- 百度之星 (5)
- Web服务 (1)
- 存储管理 (2)
- NoSQL (3)
- plymouth (1)
- 工具 (1)
- 云计算 (1)
- 嵌入式 (1)
- usbip (1)
最新评论
-
canghailan:
C++中能直接操作的最大位数64,每64位统计,最后相加,暂时 ...
判断一段内存是否全部为0 -
yiranwuqing:
canghailan 写道Hamming weight 算法应 ...
判断一段内存是否全部为0 -
canghailan:
Hamming weight 算法应该效率更高
判断一段内存是否全部为0 -
zoufangyingzi:
楼主都用了哪些jar包,压缩包中没有lib包///
Rest实例演示 -
zpz112358:
具体是什么意思啊?
flex blazed 配置多个remoting-config
sed 是一种UNIX/LINUX 平台下的轻量级流编辑器,日常一般用于处理文本文件。sed 有许多很好的特性。首先,它相当小巧;其次, sed 可以配合强大的 shell 完成许多复杂的功能。在我看来,sed完全可以看成一个脚本解释器,用类似于编程的手段完成许多事情。
sed简单示例
sed命令的格式是
sed [-options] [command] [stdin]
比如这个例子
$ sed –e ‘d’ ./Mydir/Myfile
执行该命令,将得不到任何输出。在该例中,用一个编辑命令 'd' 调用 sed;sed 打开 ./Mydir/Myfile 将一行读入其模式缓冲区,执行’d’(“删除行”);然后打印模式缓冲区(缓冲区已为空);它对后面的每一行重复这些步骤,这不会产生输出!
对这个命令要说明的几点是:首先,它根本没有修改 ./Mydir/Myfile。这是因为 sed 是流处理器,它只读取在命令行指定的文件,它不试图修改该文件。其次, sed 是面向行的,'d' 命令不是简单地告诉 sed 一下子删除所有输入数据;相反,sed 逐行将 ./Mydir/Myfile 的每一行读入其称为模式缓冲区的内部缓冲区,一旦将一行读入模式缓冲区,它就执行 'd' 命令,然后打印模式缓冲区的内容。最后要注意的事是括起 'd' 命令的单引号的用法,这样可以禁用 shell 扩展。
指定sed的作用范围
看下面的三个例子
$ sed –e ‘1d’ ./Mydir/Myfile
$ sed –e ‘1,10d’ ./Mydir/Myfile
$ sed –e ‘/begin/,/end/p’ ./Mydir/Myfile
第一个例子说明只删除./Mydir/Myfile第一行的缓冲,第二个例子将删除第1~10行的缓冲。第三个例子最复杂,它定义了以字符串’begin’开始到’end’结束的作用范围
sed中的正则表达式
sed支持正则表达式,比如
$ sed –n -e ‘/regexp/p’ ./Mydir/Myfile
比如要删除所有的空行
$ sed –e ‘/^$/d’ ./Mydir/Myfile
sed中的一些特殊定义是
规则 表达式 描述
/./ 将与包含至少一个字符的任何行匹配
/../ 将与包含至少两个字符的任何行匹配
/^#/ 将与以 '#' 开始的任何行匹配
/^$/ 将与所有空行匹配
/}^/ 将与以 '}'(无空格)结束的任何行匹配
/} *^/ 将与以 '}' 后面跟有 零或多个空格结束的任何行匹配
/[abc]/ 将与包含小写 'a'、'b' 或 'c' 的任何行匹配
/^[abc]/ 将与以 'a'、'b' 或 'c' 开始的任何行匹配
再比如一个经典的例子,打印c源代码中的main函数内容,其命令可以写成如下
$ sed –n –e ‘/main[[:space]]*(/,/^}/p’ ./Mydir/*.c
其中[:space]表示空格,[[:space]]*表示有0~多个空格,所以main[[:space]]*(的意思是匹配“main (”字符串;“^}”表示这一行有且只有一个字符}。当然,上面的命令不是十分严谨。
sed –e ‘s/regexp/repalcement’ file
替换是sed命令中最常用的命令,比如如下的例子
$ sed –e ‘s/a/b’ ./Mydir/Myfile
$ sed –e ‘s/a/b/g’ ./Mydir/Myfile
第一个命令将./Mydir/Myfile中每一行第一次出现的字符a替换成字符b;第二个命令由于加入了’/g’,表示是全局(全部)替换字符a成字符b。
经常还可以看见如下两种形式的sed
$ sed –e ‘1,10s/a/b’ ./Mydir/Myfile
$ sed –e ‘/^$/,/^END/s/a/b/g’ ./Mydir/Myfile
第一个命令是指替换1~10行;第二个命令是指全局替换从空行开始到以END开始的行中的内容。
替换命令不一定非要以/分隔,比如
$ sed –e ‘s:usr/local:/usr:g’ ./Mydir/Myfile
就是将./Mydir/Myfile中的usr/local全部替换成/usr
要用好替换命令,当然要使用正则表达式,除了上面所说的表达式的例子,还有一些是非常有用的
字符类 描述
[:alnum:] 字母数字 [a-z A-Z 0-9]
[:alpha:] 字母 [a-z A-Z]
[:blank:] 空格或制表键
[:cntrl:] 任何控制字符
[:digit:] 数字 [0-9]
[:graph:] 任何可视字符(无空格)
[:lower:] 小写 [a-z]
[:print:] 非控制字符
[:punct:] 标点字符
[:space:] 空格
[:upper:] 大写 [A-Z]
[:xdigit:] 十六进制数字 [0-9 a-f A-F]
比如下面这个例子
$ sed –e ‘s/<[^>]*>//g’ ./Mydir/Myfile
< [^>]*>匹配<…>这样的字符串(…中不含>)。运行这个命令,能够将 “<b>This</b> is what <b>I</b> meant.”这样的字符串替换成“This is what I meant.”
考察如下的命令
$ sed -e 's/.*/# &/' ./Mydir/Myfile
这个命令将所有的非空行以“#”注释掉——&告诉sed在行首插入字符。
‘s///’允许我们在规则表达式中定义区域,然后可以在替换字符串中引用这些特定区域。这些区域是以(和)隔开的。
比如定义三个匹配非空字符的区域'(.*) (.*) (.*)',现在可以定义这三个区域的动作,比如
$ sed -e 's/(.*) (.*) (.*)/PreFix 1-2 Fix 3/' ./Mydir/Myfile
假如把三个区域分别命名为a、b、c,则最后结果是 PreFix a-b Fix c
sed中组合命令
sed中的命令可以组合,以;号隔开,比如
$ sed –n –e ‘=;p’ ./Mydir/Myfile
=表示打印行号,p表示打印。对于更复杂的指令,则可以写成命令脚本,然后用-f选项导入,比如
$ sed –n –f MyScript.sed ./Mydir/Myfile
对于同一个地址上的操作,则可以用{}组合,比如
$ sed –n ‘1,20{ s/samba/Samba/g s/posix/POSIX/g }’ ./Mydir/Myfile
sed中的行附加命令
在当前行之前插入行“i”,如果要插入多行,则将多行用分隔
在当前行之后插入行“a”,用法和上面相似
更改当前行“c”
-- The End --
转自:http://space.itpub.net/519536/viewspace-558364
发表评论
-
linux 音频驱动介绍(alas和oss的联系)
2013-04-01 16:11 3856由于Linux系统是一个开源系统,所以Linux ... -
ubuntu 编译内核模块过程
2013-01-09 10:49 25811、下载内核源文件 sudo apt-cache sear ... -
ubuntu 常用命令
2012-08-16 09:03 8591、查看dd 进度 执行dd命令, dd if ... -
plymouth介绍,并制作主题
2012-05-17 11:33 1494Quick tips for those having tro ... -
学习Linux文件系统(网页整理)
2012-04-01 02:00 1177查看ext3文件系统分区的superblock http: ... -
Gnome的使用总结
2012-03-16 22:45 715在panel添加自定义程序 http://www.boya. ... -
Linux查看系统信息的一些命令及查看已安装软件包的命令
2012-03-15 16:55 695系统 # uname -a # ... -
shell 常用的技巧
2012-03-15 15:42 698声明:一般都是使用bash没有测试是否与其他shell兼容 ... -
gtk-config确实问题的解决
2012-03-11 21:31 1093gtk1.1时代使用gtk-config来配置的 g ... -
insmod 时出现的错误
2012-03-08 16:24 3719情况1. 从另外一个版本中为了测试模块拷贝到本系统中 现 ... -
linux下编程需要学习的库
2012-02-20 22:16 1022三、库的学习 无论 ... -
Mysql 重置密码方法
2011-12-22 17:42 694假设说mysql安装在/usr/local/mysql ... -
100个常见的linux守护进程
2011-12-21 09:58 10391.alsasound:Alsa声卡驱动守护程序。Alsa声卡 ... -
关于linux的段错误(Segmentation fault)
2011-11-21 11:54 12421.Segmentation fault这个字 ... -
(转)Linux音频分析(现有的几种架构)
2011-10-13 09:42 4961Linux音频系统存在一个 ... -
Hadoop】集群之外的机器如何连接到集群并与HDFS交互,提交作业给Hadoop集群
2011-04-04 16:18 1910集群以外的机器如何访问Hadoop集群,并像集群中提交作业和传 ... -
Linux开机启动过程分析(转)
2011-03-06 21:27 1144开机过程指的是从打开计算机电源直到LINUX显示用户登录画 ... -
[精华]跟我一起写 Makefile[2]
2011-02-19 19:41 1072隐含规则 ———— 在我们使用Makefile时,有一些我们 ... -
[精华] 跟我一起写 Makefile[1]
2011-02-19 19:40 1791晕,一篇文章放不下, ... -
[精华]跟我一起写 Makefile
2011-02-19 19:37 996一好人整理了这篇文章pdf格式的,链接如下: http://b ...
相关推荐
在日常工作中,我们还会经常使用`grep`进行文本搜索,`sed`进行文本处理,`awk`进行数据操作,这些都是强大的文本工具。 最后,了解并熟练使用一些高级命令,如`history`查看命令历史,`alias`定义命令别名,`sudo`...
### Shell学习心得 #### Shell简介 Shell是一种计算机操作系统壳层,用作用户与操作系统内核之间的接口。在Unix、Linux及类Unix系统中,Shell既是一个命令解释器,也允许进行程序设计。Shell脚本是用Shell语言编写...
"Linux心得范文.doc" 本文档主要讲解了Linux操作系统相关的知识点,涵盖了Linux的基本概念、命令、工具和应用场景等方面的内容。 1. Linux基本概念 Linux是一个基于Unix的开源操作系统,具有自由、开放、可移植、...
以下是我对Linux学习的一些心得体会,以及我在学习过程中遇到的问题及解决策略。 首先,了解Linux的基础知识至关重要。这包括Linux的发行版分类(如Ubuntu、CentOS、Debian等),Linux文件系统结构(根目录、用户家...
- 使用`cat`和`sed`等命令将不同分割文件的部分内容拼接成新文件`b`。 - 使用`wc`命令统计文件`b`中的单词数、字符数和行数。 - 使用`echo`和`date`命令将学号、姓名及当前日期时间信息追加到文件`b`的末尾。 - ...
#### 三、总结与心得 通过本次嵌入式课程设计,学生不仅能够掌握HK-51系列仿真开发系统的使用方法,还能深入了解液晶显示技术及其相关控制器芯片的原理与应用。此外,通过实践编程和调试,学生能够提高解决实际问题...
- 使用`sed`命令清理格式,例如删除不必要的字符。 - 使用`awk`命令提取MAC地址。 4. **将筛选后的MAC地址输出到文件**: - 使用`>>`重定向符号将结果追加到之前创建的文件中。 ### 检测FTP服务 1. **安装nmap...
20、Shell编程之学习心得分享及拓展.mp4 19、Shell编程之实战WEB界面展示二.mp4 18、Shell编程之实战WEB界面展示一.mp4 17、Shell编程之磁盘监控报警脚本.mp4 16、自动收集服务器硬件系统信息脚本.mp4 15、Shell批量...
- **调试与测试**:运行脚本,检查错误,使用`grep`、`sed`等工具进行调试。 - **实训报告**:撰写报告,记录设计思路、遇到的问题、解决方案以及个人心得。 在整个实训过程中,学生将深入理解Shell脚本编程,...
5. 实践应用:提供实例展示如何在实际项目中使用`QARobot.sh`,并分享使用心得和经验。 通过学习这些内容,开发者可以提升自己在代码风格统一和自动化工具方面的技能,使得代码更加整洁,提高团队合作效率。
由于链接无法在这里直接访问,但通常博主会分享阅读电子书的心得体会,或者是对书中内容的补充解释。 标签中的“源码”暗示这本电子书可能包含了一些有关如何阅读、理解和修改开源软件源代码的信息。这对于那些希望...
它的语法混合了C、sed、awk等语言的特点,使得它既适合快速原型开发,也适合大型项目。Perl中的变量声明不需要特定的类型,可以根据赋值自动调整,这种动态类型系统极大地提高了编程效率。 在Perl中,正则表达式是...
【描述】中的链接指向了一篇博客文章,虽然没有具体的描述内容,但我们可以推测这可能是一个个人博客,博主分享了自己在使用Linux Shell过程中的经验和心得。在iteye这样的技术交流平台上,通常会有很多实战案例和...
### 共享安装 Cacti 过程中的经历与心得 #### 一、项目背景及需求分析 在项目中遇到了一个需求,原有的 Cacti 监控系统所在的服务器需要退役,因此需要在新的服务器上重新部署 Cacti。然而,原先负责安装 Cacti 的...
- **读取数据**:使用`awk`或`sed`命令逐行读取文件内容。 - **数据解析**:提取每条记录中的班级和成绩信息。 - **计算统计量**:利用循环结构和算术运算符计算每个班级的学生数量和平均成绩。 - **输出结果**:...
- **命令行操作**:熟练使用各种Linux命令,如`ls`, `cd`, `mkdir`, `rm`, `grep`, `sed`, `awk`等。 **1.2 软件安装方法** - **RPM与YUM**:利用RPM包管理系统和YUM(Yellowdog Updater Modified)工具进行软件...
在这个文本文档中,作者可能是分享了自己在学习Linux C编程过程中的心得、笔记或者是代码示例,目的是为了帮助他人学习和理解这个领域。 【描述】"Linuxc供大家学习 只是自己学习的一个过程记录了下来 欢迎来下载啦...
- 文本处理命令:如`cat`(查看文件内容)、`grep`(搜索文本中的模式)、`sed`(流编辑器)等。 - 进程管理命令:如`ps`(显示进程状态)、`kill`(终止进程)、`top`(显示系统中运行的所有进程)等。 - 系统...