2013-10-11 69 views
0

我正在处理shell脚本,并且想要在字符串中获取模式开始和结束时使用特定字符。虽然我可以做是:获取字符串中的模式以特定字符开始和结束

a=`grep -oh ^\/ $1` 
grep -oh \'$ $a 

我知道grep -oh命令查找文件中的某一字并打印所以我试图找到的话有/开始,以'结束。 但它仍然找到单词,但我需要模式来查找,就像/bin/ls'dir是字符串一样,我必须获取/ bin/ls。也是这样,我不能在最后压制'角色。

这怎么办?

回答

0

Perl的正则表达式是方便与前瞻断言:

str="like if /bin/ls'dir is the string, I have to get /bin/ls. " 
grep -oP "/.*?(?=')" <<< "$str" 
/bin/ls 
0

假设这是一个列表,而不是用文字:

#!/bin/bash 
echo "/bin/ls'dir"|awk -F\' '{print "dir: "$1" end: "$NF}' 
相关问题