shell中字符串的处理

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

 原贴:http://www.wangchao.net.cn/bbsdetail_750409.html

 摘要:shell中字符串的处理
  对字符串的处理
  包括:截取,连接,匹配,替换,翻转... ...
  一天累积一点!
  字符串的处理:
  1,截取
  方法一:
  echo $a|awk ’{print substr( ,1,8)}’
  substr是awk中的一个子函数,对第一个参数的进行截取,从第一个字符开始,共截取8个字符,如果不够就从第二个字符中补充
  方法二
  echo $a|cut -b2-8
  cut:对标准输入的字符串进行处理
  cut -bn-m:以byte为单位,从第n个byte开始,取m个
  cut -bn,m:以byte为单位,截取第n,m个byte
  cut -b-n,m:以byte为单位,截取1-n,和第m个
  -c:以charactor为单位
  -d:指定分隔符,默认为tab
  -s:使标准输入中没有delimeter
  cut -f1:截取第1个域
  方法三
  a=123456
  echo $
  方法四
  使用sed截取字符串的最后两位
  echo $test |sed ’s//(.*/)/(../)$//’
  截取字符串的前2位
  echo $test |sed ’s/^/(../)/(.*/)//’
  2,比较
  好像没有什么可以比较的
  3,连接
  $a$b
  或者
  $string
  4,翻转
  方法一:
  使用rev命令
  方法二:
  编写脚本实现
  #!/usr/bin/awk -f
  ################################################################
  # Description : duplicate rev in awk
  ################################################################
  {
  revline = ""
  for (i=1;i<=length;i++)
  {
  revline = substr(,i,1) revline
  }
  }
  END{print revline}
  5,匹配
  grep
  egrep
  fgrep
  6,排序
  7,替换
  bash中:
  %x=abcdabcd
  %echo $ # 只替换一个
  bbcdabcd
  %echo $ # 替换所有
  bbcdbbcd
  sh中:
  ??
  如何替换/
  使用sed
  替换所有匹配
  echo $test |sed ’s/xx/yy’
  替换单个匹配
  ??
  8,得到字符串的长度:
  bash当中
  $
  或者
  expr "$VAR" : ’.*’
  9,判断字符串是否为数字
  10,得到字符串中某个字符的重复次数
  echo $a |tr "x" "/n" |wc -l
  得到的结果需要减去1
  或者
  echo $a |awk -F"x" ’{print NF-1}’
  11,得到字符串中某个string的重复次数
  12,将一批文件中的所有string替换
  for i in file_list
  do
  vi $i <<-!
  :g/xxxx/s//XXXX/g
  :wq
  !
  done
  13,如何将字符串内每两个字符中间插入一个字符
  使用sed
  echo $test |sed ’s/../&[insert char]/g’

摘要:shell中字符串的处理对字符串的处理包括:截取,连接,匹配,替换,翻转... ...一天累积一点!字符串的处理:1,截取方法一:echo $a|awk ’{print substr( ,1,8)}’substr是awk中的一个子函数,对第一个参数的进行截取,从第一个字符开始,共截取8个字符,如果不够就从第二个字符中补充方法二echo $a|cut -b2-8cut:对标准输入的字符串进行处理cut -bn-m:以byte为单位,从第n个byte开始,取m个cut -bn,m:以byte为单位,截取第n,m个bytecut -b-n,m:以byte为单位,截取1-n,和第m个-c:以charactor为单位-d:指定分隔符,默认为tab-s:使标准输入中没有delimetercut -f1:截取第1个域方法三a=123456echo $方法四使用sed截取字符串的最后两位echo $test |sed ’s//(.*/)/(../)$//’截取字符串的前2位echo $test |sed ’s/^/(../)/(.*/)//’2,比较好像没有什么可以比较的3,连接$a$b或者$string4,翻转方法一:使用rev命令方法二:编写脚本实现#!/usr/bin/awk -f################################################################# Description : duplicate rev in awk################################################################{revline = ""for (i=1;i<=length;i++){revline = substr(,i,1) revline}}END{print revline}5,匹配grepegrepfgrep6,排序7,替换bash中:%x=abcdabcd %echo $ # 只替换一个 bbcdabcd %echo $ # 替换所有 bbcdbbcd sh中:??如何替换/使用sed替换所有匹配echo $test |sed ’s/xx/yy’替换单个匹配??8,得到字符串的长度:bash当中$或者expr "$VAR" : ’.*’9,判断字符串是否为数字10,得到字符串中某个字符的重复次数echo $a |tr "x" "/n" |wc -l得到的结果需要减去1或者echo $a |awk -F"x" ’{print NF-1}’11,得到字符串中某个string的重复次数12,将一批文件中的所有string替换for i in file_list do vi $i <<-! :g/xxxx/s//XXXX/g :wq ! done13,如何将字符串内每两个字符中间插入一个字符使用sedecho $test |sed ’s/../&[insert char]/g’

 

 

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值