我正在研究shell脚本,我希望在字符串中获得一个模式,并以特定字符结束。尽我所能:
a=`grep -oh ^\/ $1`
grep -oh \'$ $a
我知道grep -oh
命令会在文件中找到一个单词并打印出来,因此我尝试找到以/
开头并以'
结尾的单词。
但它仍然可以找到单词,但我需要找到模式,就像/bin/ls'dir
是字符串一样,我必须得到/ bin / ls。同样如此,我不能在结尾处压制'
字符。
怎么可能呢?
答案 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}'