兩個詞之間我有一個變量如下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」 –