问一个简单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文件,内含有:

代码:
.....
\bibitem
.....

用以下的命令:

代码:
$ 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文件,内含有:

代码:
.....
\bibitem
.....

用以下的命令:

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

输出为0。

直接执行 grep -c '^\\bibitem' file.tex 输出为正常值。

可能是正则表达和转义哪块有问题。

谢谢。

 

grep查询文本:问一个简单shell问题,将grep的输出赋值给一个变量的更多相关文章

  1. 查看当前支持的shell,echo -e相关转义符,一个简单shell脚本,dos2unix命令把windows格式转为Linux格式

    /etc/shells [root@localhost ~]# more /etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bi ...

  2. 如何利用JUnit开展一个简单的单元测试(测试控制台输出是否正确)

    待测类(CreateString)如下: public class CreateString { public void createString() { //Output the following ...

  3. [shell编程]一个简单的脚本

    首先,为什么要学习shell呢?哈哈,当然不是shell能够怎样怎样然后100字. 最近看到一篇博文<开阔自己的视野,勇敢的接触新知识>,读完反思良久.常常感慨自己所会不多,对新知识又有畏 ...

  4. Bert文本分类实践(一):实现一个简单的分类模型

    写在前面 文本分类是nlp中一个非常重要的任务,也是非常适合入坑nlp的第一个完整项目.虽然文本分类看似简单,但里面的门道好多好多,作者水平有限,只能将平时用到的方法和trick在此做个记录和分享,希 ...

  5. 《Entity Framework 6 Recipes》翻译系列 (3) -----第二章 实体数据建模基础之创建一个简单的模型

    第二章 实体数据建模基础 很有可能,你才开始探索实体框架,你可能会问“我们怎么开始?”,如果你真是这样的话,那么本章就是一个很好的开始.如果不是,你已经建模,并在实体分裂和继承方面感觉良好,那么你可以 ...

  6. perl 引用(数组和hash引用) --- perlreftut - Mark 的一个简单的'引用'教程 ---Understand References Today. --Mark Jason Dominus, Plover Systems (mjd-perl-ref+@plover.com)

    https://blog.csdn.net/fangwei1235/article/details/8570886 首页 博客 学院 下载 论坛 APP 问答 商城 活动 VIP会员 招聘 ITeye ...

  7. linux设备驱动第三篇:写一个简单的字符设备驱动

          在linux设备驱动第一篇:设备驱动程序简介中简单介绍了字符驱动,本篇简单介绍如何写一个简单的字符设备驱动.本篇借鉴LDD中的源码,实现一个与硬件设备无关的字符设备驱动,仅仅操作从内核中分 ...

  8. 编写一个简单的C++程序

    编写一个简单的C++程序 每个C++程序都包含一个或多个函数(function),其中一个必须命名为main.操作系统通过调用main来运行C++程序.下面是一个非常简单的main函数,它什么也不干, ...

  9. 一个简单的JUnit项目

    本人一直很喜欢JAVA,可是真正接触到JUnit也不过半年.由于公司进行网页测试,采用的是 JUnit+selenium的方式搭建的测试框架,然后采用JAVA语言编写,所以本人也好好研究了一下JUni ...

随机推荐

  1. c#数据绑定(5)--LINQ

    嶽永鹏/文 本实例以MS AdventureWorks2008Entities数据库为基础,演示了LINQ TO ENTITY.LINQ TO ENTITYSQL和LINQ TO ENTITYCLIE ...

  2. FTP多任务下载实现类

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  3. linux shell技巧

    一.在SHELL编程中,经常要处理一些字符串变量.比如,计算长度啊.截取子串啊.字符替换啊等等,常常要用到awk.expr.sed.tr等命令.下面给大家介绍个简单的字符串处理方法,用不着嵌套复杂的子 ...

  4. pandas修改列的顺序

    http://www.cnblogs.com/zhoudayang/p/5414020.html cols = list(ret)cols.insert(0,cols.pop(cols.index(' ...

  5. 判断整数是否能被n整除

    (1)1与0的特性:         1是任何整数的约数,即对于任何整数a,总有1|a.         0是任何非零整数的倍数,a≠0,a为整数,则a|0. (2)若一个整数的末位是0.2.4.6或 ...

  6. VUE JS 使用组件实现双向绑定

    1.VUE 前端简单介绍  VUE JS是一个简洁的双向数据绑定框架,他的性能超过ANGULARJS,原因是实现的机制和ANGULARJS 不同,他在初始化时对数据增加了get和set方法,在数据se ...

  7. Windows 下 pdf2word 的可用软件记录

    因为用 latex 写的原稿,提交审阅的时候有 Word 版本的要求,只好找软件来转换.折腾了一整天的 Linux 下latex2html, latex2rtf 等两个曲线救国的方式来生成 Word ...

  8. asp.net ajax控件tab扩展,极品啊,秒杀其它插件

    说明:asp.net ajax控件tab要设置width和height,而且在线文本编辑器放能够放入tab中,也必须是asp.net的控件型在线文本,例如fckeditor,下面是我设置好的配置. & ...

  9. 【SPI】Polling Interrupt DMA

    三種將資料在I/O間傳送的方法有 1. Polling2. Interrupt-driven I/O3. DMA(Direct Memory Access) Polling:最簡單的方式讓I/O de ...

  10. 书旗小说app点评

    书旗小说这个手机软件用了好久了,大一的时候就开始用,业余无聊时间可以看一看网络小说打发一下时间. 书旗免费小说是一款内容以免费小说书旗网为基础的在线阅读器,除了拥有传统阅读器的书籍同步阅读.全自动书签 ...