在以下内容中提取OWNER的值:
{{USERID 9898}}{{OWNER Wayne, Daniel}}{{EMAIL danielwayne@blah.com}}
要获取此字符串,我在文本文件中使用grep。在所有其他情况下,每行只包含一个值,因此它们不是问题。 我的问题是在OWNER之后但在}}括号之前移除文本,只留下字符串' Wayne,Daniel'。
到目前为止,我已经开始考虑编写一个for循环来一次查看一个字符,但我觉得有一个更优雅的解决方案,然后我对unix的知识有限。
答案 0 :(得分:3)
尝试cat file.txt | perl -n -e'/OWNER ([^\}]+)/ && print $1'
答案 1 :(得分:3)
你可以使用这个awk:
awk -F '{{|}}' '{sub(/OWNER +/, "", $4); print $4}' file
Wayne, Daniel
答案 2 :(得分:3)
使用grep
> cat file
{{USERID 9898}}{{OWNER Wayne, Daniel}}{{EMAIL danielwayne@blah.com}}
> grep -Po '(?<=OWNER )[\w, ]*' file
Wayne, Daniel
答案 3 :(得分:1)
试试这个。我用cut
INPUT="{{USERID 9898}}{{OWNER Wayne, Daniel}}{{EMAIL danielwayne@blah.com}}"
SUBSTRING=`echo $INPUT| cut -d' ' -f3`
SUBSTRING2=`echo $INPUT| cut -d',' -f2`
SUBSTRING2=`echo $SUBSTRING2| cut -d'}' -f1`
echo $SUBSTRING$SUBSTRING2
也许不是最优雅的方式,但有效。