linux字符过滤
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
案例:
如果只希望保存一周的包,按常规方法需要通过手动删除一周前的包。但可通过date的w参数,来只保存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字符过滤的更多相关文章
- linux复习3:linux字符界面的操作
一.前言 1.对linux服务器进行管理的时候,经常要进入字符界面进行操作,使用命令需要记住该命令的相关选项和参数.vi编辑器可以用于编辑任何ASCII文本,功能非常的强大,可以对文本进行创建.查找. ...
- 深入理解Linux字符设备驱动
文章从上层应用访问字符设备驱动开始,一步步地深入分析Linux字符设备的软件层次.组成框架和交互.如何编写驱动.设备文件的创建和mdev原理,对Linux字符设备驱动有全面的讲解.本文整合之前发表的& ...
- Linux字符设备驱动结构(一)--cdev结构体、设备号相关知识机械【转】
本文转载自:http://blog.csdn.net/zqixiao_09/article/details/50839042 一.字符设备基础知识 1.设备驱动分类 linux系统将设备分为3类:字符 ...
- Smart210学习记录----beep linux字符设备驱动
今天搞定了beep linux字符设备驱动,心里还是很开心的,哈哈...但在完成的过程中却遇到了一个非常棘手的问题,花费了我大量的时间,,,, 还是把问题描述一下吧,好像这个问题很普遍的,网上许多解决 ...
- java 非法字符过滤 , 半角/全角替换
java 非法字符过滤 , 半角/全角替换 package mjorcen.netty.test1; import java.io.UnsupportedEncodingException; publ ...
- Linux字符设备中的两个重要结构体(file、inode)
对于Linux系统中,一般字符设备和驱动之间的函数调用关系如下图所示 上图描述了用户空间应用程序通过系统调用来调用程序的过程.一般而言在驱动程序的设计中,会关系 struct file 和 struc ...
- Linux 字符驱动程序(一)
Linux 字符驱动程序(一) 于linux有三个主要的内核设备: 1 字符设备: •字符设备的读写以字节为单位,存取时没有缓存. •对字符设备发出读写请求时.实际的硬件I/ ...
- 华为-on练习--重复的字符过滤
称号: 请写一个字符串过滤程序,如果使用多个相同的字符出现在字符串中,字符首次出现在非过滤,. 比方字符串"abacacde"过滤结果为"abcde". 演示样 ...
- 两款【linux字符界面下】显示【菜单】,【选项】的powershell脚本模块介绍
两款[linux字符界面下]显示[菜单],[选项]的powershell脚本模块介绍 powershell linux ps1 menu choice Multiselect 传教士 菜单 powe ...
随机推荐
- Loadrunner执行Java脚本
1. Eclipse中调试Java脚本,脚本调试通过后,打成jar包: 2. 新建lr脚本,选择Java vuser协议: 3. Run-time Settings中Classpath设置jar包,没 ...
- SAE网站搭建(1)
用了半天时间,把Django的基本结构同步到SAE上了,里边比较麻烦的地方如下: 1. 数据库的同步; SAE用的是SQL数据库,默认使用下面的用户名.密码等变量(SAE为我们做了很多工作) 首先需要 ...
- 【原】 Spark中Worker源码分析(二)
继续前一篇的内容.前一篇内容为: Spark中Worker源码分析(一)http://www.cnblogs.com/yourarebest/p/5300202.html 4.receive方法, r ...
- 常见shell操作
一.find命令详细 find命令 -- 之查找指定时间内修改过的文件 比如我们要查找linux下指定时间内做过改动的文件,我们可以用find命令,其实find命令的功能十分强大,下面我们通过几个简单 ...
- md5可能会被破解咋办?
所谓加Salt,就是加点“佐料”.其基本想法是这样的——当用户首次提供密码时(通常是注册时),由系统自动往这个密码里撒一些“佐料”,然后再散列.而当用户登录时,系统为用户提供的代码撒上同样的“佐料”, ...
- 源码生成deb包
方法一 源码包要求是使用 automake 进行编译管理的. 安装路径不能指定为 /usr/local 下的目录,否则生成 deb 包期间报错. 制作的工具是 dh-make ,如果没有安装,要先安装 ...
- javascript-智能社-笔记
JavaScript是什么 JavaScript就是修改样式 编写JS的流程 布局:HTML+CSS 属性:确定要修改哪些属性 事件:确定用户做哪些操作(产品设计) 编写JS:在事件中,用JS来修改页 ...
- excel多个文件合并
多个excel文件合并成一个需要用ms office wps是不行的 1.将所有文件放在一个文件夹里 2.在文件夹里新建一个空的excel打开 右键sheet点击查看代码->输入下面代码-> ...
- Cactus入门
这是一个WebProject,有关Cactus用法详见本文测试用例 首先是web.xml <?xml version="1.0" encoding="UTF-8&q ...
- SIGGRAPH
这两天看了一些文章,今天来说说SIGGRAPH. 对于搞图形学的人来说,SIGGRAPH绝对是如雷贯耳.SIGGRAPH是计算机图形界(也包含图像)最顶级的会议,没有之中的一个,是全世界的图形学者公认 ...