以下是文字行:
SRC = '999'
其中999可以是任意三位数。
我需要一个grep命令,它会返回给我999.我该怎么做?
答案 0 :(得分:4)
以下是使用sed
的方法grep SRC=\'.*\' | sed 's/SRC=.\(.*\)./\1/'
答案 1 :(得分:2)
线条是否始终采用SRC='nnn'
格式?然后你可以使用
grep SRC | cut -d"'" -f2
答案 2 :(得分:2)
您可以使用-o
上的grep
选项仅返回与正则表达式匹配的字符串部分:
echo "SRC='999'" | grep -o -E '[0-9]{3}'
答案 3 :(得分:1)
你不能用普通的grep做到这一点。正如我的盒子上的手册页所述:“grep - 匹配图案的打印线条”grep只打印线条,而不是线条的一部分。
我会推荐awk,因为它可以同时进行模式匹配和子行提取:
awk -F\' ' /SRC/ {print $2}'
答案 4 :(得分:1)
刚刚sed会做
$ echo SRC='999' | sed '/SRC/s/SRC=//'
999
答案 5 :(得分:0)
平台grep或一般正则表达式?
正则表达式
SRC\=\'(\d{3})\'
答案 6 :(得分:0)
为什么grep?怎么样..
substr("SRC='999'",6,3)
答案 7 :(得分:-1)
取决于您的平台/语言。
Ruby中的:
string = "SRC = '999'"
string.match(/([0-9]{3})/).to_s.to_i
将返回一个整数