获取字符串中的模式以特定字符开头和结尾

时间:2013-10-11 21:09:05

标签: linux shell

我正在研究shell脚本,我希望在字符串中获得一个模式,并以特定字符结束。尽我所能:

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

我知道grep -oh命令会在文件中找到一个单词并打印出来,因此我尝试找到以/开头并以'结尾的单词。 但它仍然可以找到单词,但我需要找到模式,就像/bin/ls'dir是字符串一样,我必须得到/ bin / ls。同样如此,我不能在结尾处压制'字符。

怎么可能呢?

2 个答案:

答案 0 :(得分:0)

Perl正则表达式对前瞻断言非常方便:

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

答案 1 :(得分:0)

假设它是一个列表,而不是文本:

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