当前位置:  技术问答>linux和unix

请问SHELL中有能根据模式直接抽取指定字段的内置命令吗?不能使用awk等工具的!

    来源: 互联网  发布时间:2015-03-31

    本文导语:  比如,command "User 12.34 xxxxx" "User (*).*" 抽取的结果应为12;模式不一定是这么定义的 expr 好像有这样的功能,但不知具体怎么用的?? 谢谢帮忙啊! | 有啊,告诉你一定要给分啊,我可是...

比如,command "User 12.34 xxxxx" "User (*).*"
抽取的结果应为12;模式不一定是这么定义的

expr 好像有这样的功能,但不知具体怎么用的??
谢谢帮忙啊!

|
有啊,告诉你一定要给分啊,我可是新来的!嘿嘿
首先让我门看看你用的如果是bash的话,也就是你的系统是 redhat,恩,这样就方便的多了,你想想在这么多启动脚本里,抽取字段是十分必要的!我们看看/etc/init.d/functions里的一段把!
…………
   [ -z "$gotbase" ] && base=${1##*/}
…………
显然是在/aa/bb/cc这样的地方抽取字段
然后我们转到看,man bash:

………………
  ${parameter#word}
       ${parameter##word}
              The  word  is  expanded to produce a pattern just as in pathname
              expansion.  If the pattern matches the beginning of the value of
              parameter,  then  the  result  of  the expansion is the expanded
              value of parameter with the shortest matching pattern (the ``#''
              case) or the longest matching pattern (the ``##'' case) deleted.
              If parameter is @ or *, the pattern removal operation is applied
              to  each  positional parameter in turn, and the expansion is the
              resultant list.  If parameter is an array  variable  subscripted
              with  @  or  *, the pattern removal operation is applied to each
              member of the array in turn, and the expansion is the  resultant
              list.

       ${parameter%word}
       ${parameter%%word}
              The  word  is  expanded to produce a pattern just as in pathname
              expansion.  If the pattern matches a  trailing  portion  of  the
              expanded value of parameter, then the result of the expansion is
              the expanded value of parameter with the shortest matching  pat-
              tern  (the  ``%''  case)  or  the  longest matching pattern (the
              ``%%'' case) deleted.  If parameter  is  @  or  *,  the  pattern
              removal  operation  is  applied  to each positional parameter in
              turn, and the expansion is the resultant list.  If parameter  is
              an  array  variable subscripted with @ or *, the pattern removal
              operation is applied to each member of the array  in  turn,  and
              the expansion is the resultant list.
……………………………………………………………………………………


 ${parameter##word#}就有抽取字段功能

|
shell没有这种功能,要不然awk岂不是没有用处了?
还是老老实实用awk或者perl吧,一般的系统都配有这些包的

|
楼主这个问题很奇怪,是否限定为shell的built_in功能,否则的话awk、sed还是expr有什么区别呢?

|
expr不是内置命令。

    
 
 

您可能感兴趣的文章:

  • 请问如何抽取字符中的数字
  • 在Java中,用Mircosoft SQL Server数据库,请问要进行日期字段的读取,用( ResultSet rs ; rs.getDate(1),其中1代表相应的字段为 DateTi
  • 要修改ip报文的TOS字段请问怎么做呀?
  • 请问怎么用sort对多个字段进行排序?
  • 请问如何取出SQL数据库里某表某字段的description内容
  • 请问保存文章内容的字段应用什么类型的(oracle),急!!!
  • 请问jboss+oracle文件怎样配置,数据库中文字段不为乱码
  • 请问在Entity bean中这日期型字段的问题?
  • 请问如何得到某个字符串的部分字段,急!
  • 请问如何取得提交表单的file和textarea字段?
  • 请问Access数据库中的日期型字段是对应java中的哪个Date类?
  • 请问:用JDBC连接数据库时,多表查询怎样区分各表字段名?
  • 请问在java钟如何得到数据库中的记录总数,以及如何求数据库中一个字段的和?
  • 请问那位高手能帮我解决在jsp中将本地文件上传到数据库服务器的一个字段中的问题
  • 请问:如果数据库表中的age字段的类型为number(1), 哪 么我定义的宿 主变量用int age 可不可以啊,(当我往里面插入时,有错误啊)
  • 请问在jsp中将系统当前时间插入到Oracle中Date字段中?(很急,在线等待)
  • 请问一下AWK怎么样在一行文本中的第14个字段的最后面加一个空格符呢,不知道AWK的写法该怎么写,在线求教,谢谢了!!!
  • 请问怎么把数据字段插入到下拉列表框中~
  • 请问:假如在表中某个字段存储了200个汉字,而我只想输出这200个汉字中的前10个汉字,怎样才能达到这个效果呢?
  • 请问oracle的clob字段可不可以存富文本的文件,like .doc .rtf?如果可以如何用java读取?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问在 redlinux 8.0 下可否安装内置MODEM
  • 请问:java中的内置类是何意思?
  • 请问:我知道路由器的telnet密码,但忘记了enable 密码,请问如何是好?
  • 请问那里有SYBASE的jbdb 2.0下载;jspsmartupload可以直接将文件上传到数据库,请问如何使用
  • 请问最新的reahat9.0是基于什么核心的?2.4?2.6?请问那里能下载?
  • 请问:请问哪里有关于linux基本操作命令讲解的资料下载,最好是幻灯片格式的.
  • 请问,我试图用#admintool&图形工具命令来安装sun workshop5.0,为什么进入的却是用户管理界面?请问具体该如何在solaris下安装应用软件
  • 请问在Redhat 9里,我从登录就是图形介面,请问如何在图形介面内进入命令行方式呢,谢谢
  • 请问玩过SOLARIS的高手门,在不正常关机后,就不能启动到windows公用桌面了,只能在命令提示模式下了,请问怎么解决这个问题啊?急~!~!
  • 请问:我在redhat下装了bochs-2.2.1-1.rpm,.装了后,想设置一下,但找不到bochsrc.fda.bxrc,请问这个文件在哪个曰录下啊。
  • 请问:在配置Qt时,很多文档都说在.profile,.login里加东西,但是我好像没有发现有这两个文件上,请问这些文件在哪个目录下啊
  • 请问:在GCC里的C程序里的变量的声明是不是只能在前面,而且相同类型的变量的声明只能放在一起?如果不是,请问怎么样可以解决这个问题.
  • 请问各位大虾,小弟今天开始学jsp了,这学期我们有java课,所以已经下载了jdk(好象是1.2),请问我的98环境怎么配置jsp环境呀?我的jdk可以运行.java程序,别的我就不知道了....谢谢!
  • 主机是WIN2000,我用的是LUNIX,请问是否可以共享上网? 如果可以请问如何设置? 500分答谢,龟儿食言!
  • 请问linux下GUI开发的问题!
  • 请问出现fstab文件丢失该怎么修复呀?
  • 请问这个方法如何调用?
  • 请问一个奇怪的问题!
  • 请问在网页中打开的新窗口,如何让其居中。
  • 请问我该学什么了
  • 请问安装zhcon,cxterm问题
  • 非常急! 请问daemontools 在red hat 9下的安装问题? 在线等待


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3