两个词之间我有一个变量如下awk命令打印文本呈现的变量
一个=“我的名字是A.她的名字叫B.他的名字叫C”
我需要在“名称”和“。”之间打印文本。
预期输出为
is A
is B
is C
编辑:解决方案应在Solaris和Linux机器工作都
两个词之间我有一个变量如下awk命令打印文本呈现的变量
一个=“我的名字是A.她的名字叫B.他的名字叫C”
我需要在“名称”和“。”之间打印文本。
预期输出为
is A
is B
is C
编辑:解决方案应在Solaris和Linux机器工作都
这适用于GNU的grep
$ grep -ioP '(?<=name).+?(?=\.|$)' <<< "$a"
is A
is B
is C
这适用于在Solaris 5.8 with/usr/xpg4/bin/awk
$ echo "$a" | awk -F '[nN]ame |\\.' '{for (i=2; i<=NF; i+=2) print $i}'
is A
is B
is C
假设你有在Solaris bash
,下面应该工作:
while read -r l; do
echo "${l//*[Nn]ame /}";
done < <(tr '.' '\n' <<< "$a")
您的输入,它会产生:
is A
is B
is C
在solaris中它说'grep:非法选项 - o grep:非法选项-P 用法:grep -hblcnsviw模式文件。 。 。 ' – logan
[nN]是什么意思? – logan
这是一个正则表达式括号表达式,意思是:匹配“n”或“N” –