zoukankan      html  css  js  c++  java
  • grep查询文本:问一个简单shell问题,将grep的输出赋值给一个变量

    问一个简单shell问题,将grep的输出赋值给一个变量

    用grep命令得到的输出赋值给一个变量不成功。

    grep命令如下:
    代码:
    $ grep -c '^abc' file.txt
    输出为22,表示file.txt中以abc开头的行的数目。

    现在将输出赋值给一个变量:
    代码:
    myvar=`grep -c '^abc' file.txt`
    得到的$myvar值为0,貌似是将命令的返回状态值付给了变量,而不是命令的输出内容。
    但是用myvar=`pwd`是没有问题的,输出付给了变量。是不是grep命令有特别注意的地方?谢谢。
     
    昵称: michaelyung  时间: 2009-06-26 16:32:00
    好象没有问题:
    (a=`grep -c ' mysql' /dev/shm/l`; echo $a)
    21
     
    昵称: openfree  时间: 2009-06-26 20:39:00
    引用:
    作者: openfree
    好象没有问题:
    (a=`grep -c ' mysql' /dev/shm/l`; echo $a)
    21
    刚试了一下,直接匹配没有问题。
    用了正则表达的时候就会有这问题,比如
    加了-E选项也一样,$a输出为0.

    附上我的例子,有一个tex文件,内含有:
    代码:
    ..... ibitem .....
    用以下的命令:
    代码:
    $ a=`grep -c '^\bibitem' file.tex`; echo $a
    输出为0。
    直接执行 grep -c '^\bibitem' file.tex 输出为正常值。
    可能是正则表达和转义哪块有问题。
    谢谢。
     
    昵称: michaelyung  时间: 2009-06-27 01:41:00

    知道问题在哪了。赋值时,正则表达里的转义符两个backslash都需要转义。所以应该是:

    代码:
    a=`grep -c '^\\bibitem' paper.tex`;echo $a

    愚蠢的错误。
    多谢大家。

    引用:
    作者: michaelyung
    刚试了一下,直接匹配没有问题。
    用了正则表达的时候就会有这问题,比如
    加了-E选项也一样,$a输出为0.

    附上我的例子,有一个tex文件,内含有:
    代码:
    ..... ibitem .....
    用以下的命令:
    代码:
    $ a=`grep -c '^\bibitem' file.tex`; echo $a
    输出为0。
    直接执行 grep -c '^\bibitem' file.tex 输出为正常值。
    可能是正则表达和转义哪块有问题。
    谢谢。
     
  • 相关阅读:
    Jmeter 接口测试实战-有趣的cookie
    Jmeter输出完美报告
    记忆-走进古镇
    JMeter接口测试实战-动态数据验证
    JMeter写入文件
    正则表达式匹配任意字符(包括换行符)
    No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android"
    Unable to get the CMake version located at
    adb 查看 android手机的CPU架构
    java.lang.UnsatisfiedLinkError:dlopen failed: “**/*/arm/*.so” has unexpected e_machine: 3
  • 原文地址:https://www.cnblogs.com/yuhuameng/p/6212643.html
Copyright © 2011-2022 走看看