从 linux 中的字符串中提取字符串
Extracting a string from a string in linux
提取以下 OWNER 的值:
{{USERID 9898}}{{OWNER Wayne, Daniel}}{{EMAIL danielwayne@blah.com}}
为了获取此字符串,我在文本文件上使用了 grep。在所有其他情况下,每行仅包含一个值,因此它们不是问题。
我的问题是删除 OWNER 之后但 }} 括号之前的文本,只留下字符串 'Wayne, Daniel'.
到目前为止,我已经开始考虑编写一个 for 循环来一次遍历文本一个字符,但我觉得有一个比我对 unix 的有限知识更优雅的解决方案。
尝试cat file.txt | perl -n -e'/OWNER ([^\}]+)/ && print '
你可以使用这个 awk:
awk -F '{{|}}' '{sub(/OWNER +/, "", ); print }' file
Wayne, Daniel
和grep
> cat file
{{USERID 9898}}{{OWNER Wayne, Daniel}}{{EMAIL danielwayne@blah.com}}
> grep -Po '(?<=OWNER )[\w, ]*' file
Wayne, Daniel
试试这个。我用 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
也许这不是最优雅的方式,但可行。
提取以下 OWNER 的值:
{{USERID 9898}}{{OWNER Wayne, Daniel}}{{EMAIL danielwayne@blah.com}}
为了获取此字符串,我在文本文件上使用了 grep。在所有其他情况下,每行仅包含一个值,因此它们不是问题。 我的问题是删除 OWNER 之后但 }} 括号之前的文本,只留下字符串 'Wayne, Daniel'.
到目前为止,我已经开始考虑编写一个 for 循环来一次遍历文本一个字符,但我觉得有一个比我对 unix 的有限知识更优雅的解决方案。
尝试cat file.txt | perl -n -e'/OWNER ([^\}]+)/ && print '
你可以使用这个 awk:
awk -F '{{|}}' '{sub(/OWNER +/, "", ); print }' file
Wayne, Daniel
和grep
> cat file
{{USERID 9898}}{{OWNER Wayne, Daniel}}{{EMAIL danielwayne@blah.com}}
> grep -Po '(?<=OWNER )[\w, ]*' file
Wayne, Daniel
试试这个。我用 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
也许这不是最优雅的方式,但可行。