设为首页 收藏本站
查看: 807|回复: 0

shell 文本过滤

[复制链接]

尚未签到

发表于 2018-8-24 10:14:32 | 显示全部楼层 |阅读模式
  ^一行的开始 ^d以开头的  ^..1 第三个为1的字符   ^字符要放在匹配的字符前面
  $一行的末尾 ^$ 表示空行 ^.$匹配一行一个字符的  $字符要放在匹配的字符后面
  *匹配任意个字符  包括0个字符 .表示单个字符
  \可以屏蔽一个特殊的字符 \*\.pas 这里的*是特殊字符,这样就表示*.pas这个文件
  逗号可以分割不同的匹配字符如[S,s]表示S或者s都可以
  -表示一个范围,[1-9],[a-z],[A-Z]  [1-9 A-Z a-z]任意的字符或者数字
  A\{2\}B 表示A出现了2次  AAB
  A\{4,\}B 表示A至少出现4次 AAAAB,AAAAAB
  A\{2,4\}B 表示A出现2-4次  AAB AAAB AAAAB
  [0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}  0-999.0-999.0-999.0-999
  查找文件的时候 find 用到的
  find pathname -options [-print -exec -ok]
  -name -perm 权限 -user -group -mtime -n +n  -atime -ctime 文件的时间 -size  -nogroup 无有效属组的文件/etc/group 下不存在 -nouser 无有效用户的文件/etc/passwd
  -newer file1 !file 比文件一新但比文件2旧的文件 -type [bdcplf] 文件类型
  find . -name "*.rep" -print 匹配了含有.rep的文件,-print 可以不用写
  find . -name "[A-Z]*" -print 当前目录下以大写字母开头的
  find . -perm 775 当前目录下以775权限的文件
  -print 将查找到的文件输出到标准输出
  -exec  command {} \
  找到后执行一些shell命令
  find . -type f -exec ls -l {} \ 查找到并且ls
  find . -name "*.log" -mtime +5 -ok rm {} \ 查找5天以前的到并且rm  ok命令要求得到确认
  xargs 和exec的区别 exec会发起多个进程,而xargs 只有一个进程减少系统资源的消耗
  find . -prem -7 -print|xargs chmod o-w
  find . -prem -7 -print|xargs file 查看文件类型
  grep 标准的,扩展的
  grep [选项]基础正则表达式[文件]  正则表达式最好用“”括起来
  -c 只输出有多少行匹配到了
  -i 不区分匹配的大小写
  -h 查询多文件时不显示文件名
  -H 显示文件名
  -l 查询多个文件时,只显示包含匹配字符的文件名
  -n 显示匹配行和行信息
  -s 不显示不存在的或无匹配的错误信息
  -V 过滤掉表达式的部分
  grep "^[^210]"  1.txt 非210开头的,2,1,0开头的行都被过滤掉 3-9开头的都可以显示出来
  [[:upper:]] [A-Z]
  [[:alnum:]] [A-Z0-9a-z]
  [[:lower:]] [a-z]
  [[:space:]] 空格或tab键
  [[:digit:]] [0-9]
  [[:alpha:]] [a-zA-Z]
  grep "5[[:digit:]][[:digit:]]" 1.txt  500-599的匹配
  awk
  命名的方式:
  awk [-F filed-spearator] 'commend' input-files
  awk 脚本 :所有的命名都放在一个文件里面
  awk命令插入一个单独的文件
  awk -f awk-script-file input-file
  默认的分割符为空格 -F : 以:为分割符  awk -F : '{print $1"\t"$4}' i.txt  print中是要用“”引起来字符串的
  明白记录,分割,域。一条记录被分割就成了域 awk主要进行的操作就是对域进行操作 动作对数据进行处理 放在{}中内指明。一般用print,模式部分决定动作什么时候被触发
  域:$0 $1...$n
  awk  'BEGIN {ptint "IP                    date\n"} {print $1"\t"$4} END{print "end of report"} 1.txt
  IP                    date
  $1    $4
  end of report
  awk 中特殊的字符“+“”?“ 前者表示多个字符,后者表示一个字符 ~ 匹配 !~不匹配
  cat i.txt|awk '$0 ~ /218.79.131.96/'
  awk '$0 !~ /210.12.12.30/' i.txt
  awk '{if($1=="210.12.12.30") print $0}' i.txt
  sed 不对原有的文件操作,先拷贝一个副本,所有操作在副本上操作
  sed
  命令格式
  sed 脚本 :sed 选项 输入文件
  sed 脚本 输入文件 :sed 选项 -f sed脚本文件 输入文件
  如果没有输入文件,它会从标准输入得到 :sed脚本文件 选项 输入文件
  选项
  -n 不打印没匹配到
  -c 下一个命令是编辑命令
  -f 如果正在调用sed脚本
  sed '2p' i.txt        p就是打印
  sed -n '2p' i.txt     第2行  不打印没匹配到的,只打印匹配到的
  sed -n '1,2p' i.txt   打印2行
  sed -n '/los/p' i.txt 匹配到los
  sed -n '2,/los/p' i.txt 从第3行开始到匹配的los结束
  sed -n '/^$/=' i.txt 打印出空行的行号
  sed -n -e '/^$/p' -e '/^$/=' i.txt  不能同时用-e 区分
  sed '/aaaio/a\shenz' i.txt 会在找到aaaio后追加一行写上shenz 要分两行进行书写
  sed '/aaaio/i\shenz' i.txt 会在找到aaaio前追加一行写上shenz
  sed '/aaaio/c\shenz  ddd' i.txt 会在找到aaaio 替换成shenz   ddd
  sed '1,2d' i.txt 会把1,2行给删除掉
  sed 's/shenz/shenzhen/g' i.txt  所有shenz的地方全部替换 不加g时只在当次替换
  sed 's/shenz/& shenzhen /p' i.txt 匹配到了shenz以后加上shenzhen
  sed 's/shenz/ shenzhen &/p' i.txt 匹配到了shenz之前加上shenzhen


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-555853-1-1.html 上篇帖子: Shell 参数等等 下篇帖子: shell小练习20130116-always
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表