1  案例一:取eth0的IP地址

方法一:通过cut方法过滤

[root@baiguin ~]# ifconfig eth0|grep "inet addr:"|cut -d ":" -f2|cut -d " " -f1

192.168.26.132

===============================================================

方法二:通过awk方法过滤

1)[root@baiguin ~]# ifconfig eth0 |grep "inet addr:" |awk -F: '{print $2 }'|awk '{print $1}'

192.168.26.132

2)[root@baiguin ~]# ifconfig eth0 |grep "inet addr:" |awk -F "[ :]" '{print $13}'

192.168.26.132

3)[root@baiguin ~]# ifconfig eth0 |grep "inet addr:" |awk -F "[ :]+" '{print $4}'

192.168.26.132

4)[root@baiguin ~]# ifconfig eth0 |awk  -F '[ :]+' '{if(NR==2) print $4}'

192.168.26.132192.168.26.132

[root@baiguin ~]# ifconfig eth0|grep "inet addr:"|awk -F "[ :]*" '{print $4}'

192.168.26.132

注:此中的“+”和“*”号即正则表达式用法

===========================================================

方法三:通过sed方法过滤

1)[root@baiguin ~]# ifconfig eth0|sed -n "s/^.*addr:\(.*\)  Bcast.*$/\1/gp"

192.168.26.132

注:sed小括号()分组功能

   Sed ‘s/ / /g’

   部分可以用正则表达式, 的部分不能用正则表达式。

()是分组(group),再   部分使用()括起来的内容,再 的位置可以使用\1调用前面括号内的内容。

如果有多个的括号,那么依次是\2,\3调用 第二个第三个括号,以此类推。

eg:

[root@baiguin ~]# echo "aaa bbb" >a.txt

[root@baiguin ~]# cat a.txt

aaa bbb

[root@baiguin ~]# sed 's#\(aaa\) \(bbb\)#\1#g' a.txt

aaa

[root@baiguin ~]# sed 's#\(aaa\) \(bbb\)#\2#g' a.txt 

bbb

[root@baiguin ~]# sed 's#\(.*\) \(.*\)#\2#g' a.txt      

bbb

[root@baiguin ~]# sed 's#\(.*\) \(.*\)#\1#g' a.txt 

aaa

2) [root@baiguin ~]# ifconfig eth0|sed -n 2p|sed -n "s/^.*addr:\(.*\) Bcast.*$/\1/gp"

192.168.26.132

3)[root@baiguin ~]# ifconfig eth0 |sed -n 2p |sed 's#^.*addr:##g'|sed 's# Bcas.*$##g'

192.168.26.132

2  如何取得wang.txt的权限对应的数字内容(如-rw-r-r-为644,要求使用命令取得644或0644数字)

1)通过Sed正则进行截取

[root@baiguin ~]# stat wang.txt |sed -n 's#^.*(0\(.*\)/-.*$#\1#gp'

644

2)通过awk正则进行截取

[root@baiguin ~]# stat wang.txt |awk -F "[: (0]+" '{if (NR==4) print $2}'|cut -d"/" -f1

644

[root@baiguin ~]# stat wang.txt |awk -F "[(0/]" '{if (NR==4) print $3}'

644

3)通过命令直接取

[root@baiguin ~]# stat -c %a wang.txt

644

注:可“man stat”查看参数

4)另外思考方法

[root@baiguin ~]# ls -l wang.txt |cut -c 2-10|tr rwx- 4210|awk -F "" '{print $1+$2+$3,$4+$5+$6,$7+$8+$9}'|sed 's# ##g'

644

注:tr rwx- 4210的用法

3  一些文件被黑客植入一样的病毒,如何将这些文件相同的病毒代码删除。

步骤:

1)先模拟创建几个文件,并在文件中随意输入一些内容。

[root@baiguin ~]# touch wang/w.txt wang/bai/b.txt wang/bai/gui/g.txt

2)用find查找出wang目录下所有的文件,并通过xargs命令将需要添加的病毒依次添加进去。

[root@baiguin ~]# find wang -type f |xargs sed -i '1 i <11111111111111111111111111111>'

注:注意sed后-i命令的用法

3)在生产环境中,要替换文件时需先全部备份,以防二次破坏文件。在此编写一脚本进入对要替换的文件做备份。

[root@baiguin ~]# cat test.sh

file=`find /root/wang -type f >1.txt`

filename=`cat 1.txt`

for i in $filename;do

        cp $i /bak

done

[root@baiguin ~]# sh test.sh

[root@baiguin ~]# ls /bak/

b.txt  g.txt  w.txt

4)通过sed将相同的命令全部替换成空删除

查看到每个文件都有相同的字符

[root@baiguin ~]# cat wang/w.txt

<1111111111111111111111111111111111111111111111111111111>

<dsfaasdfasdfsadffdfsdafddsfasd>

dfajdf

[root@baiguin ~]# cat wang/bai/b.txt

<1111111111111111111111111111111111111111111111111111111>

sdfdfsdf

sdf

解决办法:通过sed命令删除

[root@baiguin ~]# find wang -type f |xargs sed -i '/<1111111111111111111111111111111111111111111111111111111>/d'

[root@baiguin ~]# find wang -type f |xargs sed -i '/^.*1111111111>/d'

再次查看,看替换结果。

[root@baiguin ~]# cat wang/w.txt

<dsfaasdfasdfsadffdfsdafddsfasd>

dfajdf

[root@baiguin ~]# cat wang/bai/b.txt

sdfdfsdf

sdf

结果成功!

4  通过tar打包,并以时间date格式打包包名。

[root@baiguin ~]# tar zcvf wang-$(date +%F).bak wang

[root@baiguin ~]# ls wang-2014-09-26.bak

wang-2014-09-26.bak

案例:

如果只希望保存一周的包,按常规方法需要通过手动删除一周前的包。但可通过datew参数,来只保存7天,之后循环覆盖即可

[root@baiguin ~]# tar zcvf wang-$(date +%w).bak wang

[root@baiguin ~]# ls wang-5.bak

5  下列快捷键含义

Ctrl + a                 ; 光标到行的开头

Ctrl + e                 ; 光标到行的结尾

Ctrl + d                  ; 退出当前窗口,或当前用户

Ctrl + l                 ; 清屏或clear命令

Ctrl + u                 ; 删除光标前面行的内容

Ctrl + k                 ; 删除光标后面行的内容

Ctrl + s                  ; 锁住屏幕

Ctrl + q                 ; 解锁屏幕

linux字符过滤的更多相关文章

  1. linux复习3:linux字符界面的操作

    一.前言 1.对linux服务器进行管理的时候,经常要进入字符界面进行操作,使用命令需要记住该命令的相关选项和参数.vi编辑器可以用于编辑任何ASCII文本,功能非常的强大,可以对文本进行创建.查找. ...

  2. 深入理解Linux字符设备驱动

    文章从上层应用访问字符设备驱动开始,一步步地深入分析Linux字符设备的软件层次.组成框架和交互.如何编写驱动.设备文件的创建和mdev原理,对Linux字符设备驱动有全面的讲解.本文整合之前发表的& ...

  3. Linux字符设备驱动结构(一)--cdev结构体、设备号相关知识机械【转】

    本文转载自:http://blog.csdn.net/zqixiao_09/article/details/50839042 一.字符设备基础知识 1.设备驱动分类 linux系统将设备分为3类:字符 ...

  4. Smart210学习记录----beep linux字符设备驱动

    今天搞定了beep linux字符设备驱动,心里还是很开心的,哈哈...但在完成的过程中却遇到了一个非常棘手的问题,花费了我大量的时间,,,, 还是把问题描述一下吧,好像这个问题很普遍的,网上许多解决 ...

  5. java 非法字符过滤 , 半角/全角替换

    java 非法字符过滤 , 半角/全角替换 package mjorcen.netty.test1; import java.io.UnsupportedEncodingException; publ ...

  6. Linux字符设备中的两个重要结构体(file、inode)

    对于Linux系统中,一般字符设备和驱动之间的函数调用关系如下图所示 上图描述了用户空间应用程序通过系统调用来调用程序的过程.一般而言在驱动程序的设计中,会关系 struct file 和 struc ...

  7. Linux 字符驱动程序(一)

    Linux 字符驱动程序(一) 于linux有三个主要的内核设备: 1 字符设备:         •字符设备的读写以字节为单位,存取时没有缓存.      •对字符设备发出读写请求时.实际的硬件I/ ...

  8. 华为-on练习--重复的字符过滤

    称号: 请写一个字符串过滤程序,如果使用多个相同的字符出现在字符串中,字符首次出现在非过滤,. 比方字符串"abacacde"过滤结果为"abcde". 演示样 ...

  9. 两款【linux字符界面下】显示【菜单】,【选项】的powershell脚本模块介绍

    两款[linux字符界面下]显示[菜单],[选项]的powershell脚本模块介绍 powershell linux  ps1 menu choice Multiselect 传教士 菜单 powe ...

随机推荐

  1. [King.yue]关于代码调试时的缓存问题的一个解决办法

    后台构造数据更改之后,页面数据一直不变,试过各种办法,清空浏览器缓存,停止端口重新运行,关掉程序重新打开,都不可以.最终全部重新生成之后,终于可以正常调试了. 另:调试ASP.NET网站程序的时候,为 ...

  2. 基于Geoserver配置多图层地图以及利用uDig来进行样式配置

    在GeoServer中配置多个图层的地图相对来说很容易,其步骤为: 1. 进入geoserver 2. 配置相关的FeatureTypes 3. 配置WMS内容,进入以后,主要有以下几个地方需要命名: ...

  3. opencv+树莓PI的基于HOG特征的行人检测

    树莓PI远程控制摄像头请参考前文:http://www.cnblogs.com/yuliyang/p/3561209.html 参考:http://answers.opencv.org/questio ...

  4. 经典sql(3)

    描述:有两个表A 和B ,均有key 和value 两个字段,如果B 的key 在A 中也有,就把B 的value 换为A 中对应的value 表B此处为tbaley的情况:      A: tabl ...

  5. 多线程归并排序的实现 java

    多线程是非常适合归并排序的,因为归并排序是分治法,所以分割后可以独立运行,最后将结果归并起来就行了.如何写一个多线程程序呢?今天无聊,总结一下啊. 首先写个普通的归并排序,以后的多线程就调用这个排序. ...

  6. Java笔记(十三)……面向对象III继承(inheritance)

    继承概述 继承概述 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继那个类即可. 多个类可以称为子类,单独这个类称为父类或者超类. 子类可以直接访 ...

  7. sensor的skipping and binning 模式

    关于sensor的缩放存在两种模式 binning mode 和skip mode skipping mode 就是把想要的数据采集上来 把其余的数据扔掉 如下所示 column skip 2 row ...

  8. Esper系列(九)NamedWindow语法create、Insert、select

    功能:用于存储一种或多种类型的事件的集合,并能对所存储的事件进行增删改查操作. CreateNameWindow 根据已有的数据源构造 格式: 1  [context context_name]  2 ...

  9. jQuery事件绑定的最佳实践

    如果你经常使用jQuery,那么你也许很熟悉事件绑定.这是很基本的东西,但是深入一点,你就能够找到机会让你事件驱动的代码变得不太零碎,并且更容易管理. 更好的选择器策略 让我们从基础的例子开始.下面的 ...

  10. mvc:annotation-driven' must have no character or element问题

    使用SpringMVC,启动tomcat报这个错误 解决办法 首先将Spring版本提升到3.1及以上 如果还不行替换xml文件头部: <?xml version="1.0" ...