+ -
当前位置:首页 → 问答吧 → grep输出一行中不匹配的部分用哪个参数?

grep输出一行中不匹配的部分用哪个参数?

时间:2011-07-11

来源:互联网

sh-3.1$ne=ne.ini
用ne.匹配,但希望匹配的结果是ini,也就是不匹配的部分被打印出来。
但实际上,下面这条命令只能显示匹配的部分,高手说下怎么才能打印出不匹配的部分,多谢。
sh-3.1$ grep -io "ne." <<< "$ne"
ne.

作者: icetown   发布时间: 2011-07-11

回复 icetown


    -v

作者: wtuter   发布时间: 2011-07-11

本帖最后由 icetown 于 2011-07-11 17:07 编辑

楼上的不对,-v是打印不匹配的行。我期望的是这一行是匹配的,只是打印出来的是不匹配的部分。
况且我的待匹配项只是变量,不是多行的文件。

作者: icetown   发布时间: 2011-07-11

嘻嘻,如果格式就是这么固定的话,用awk和正则匹配,然后输出吧。

作者: 青蛙咕啦咕啦   发布时间: 2011-07-11

坐等只有grep实现的

作者: luyi1983   发布时间: 2011-07-11

回复 luyi1983


-P 用perl正则是可以的

作者: ly5066113   发布时间: 2011-07-11



QUOTE:
sh-3.1$ne=ne.ini
用ne.匹配,但希望匹配的结果是ini,也就是不匹配的部分被打印出来。
但实际上,下面这 ...
icetown 发表于 2011-07-11 17:02




# echo "ne.ini" | grep -oP '(?<=ne\.).+'
ini

作者: jason680   发布时间: 2011-07-11

echo "$ne" | awk -F 'ne[\.]' -v OFS= '{NF=NF}1'

作者: ywlscpl   发布时间: 2011-07-11

回复 icetown


    变量整这么麻烦?

ne=ne.ini;echo ${ne#*.}

作者: wtuter   发布时间: 2011-07-11

grep limitations:
1. cannot add/delete/change line
2. cannot print part of line
3. cannot only read part lines of file

use sed instead

sed 's/ne.//' <<< "$ne"

作者: ryh19860922   发布时间: 2011-07-11

热门下载

更多