Sed 模式与空间之间的Grep文本

Sed 模式与空间之间的Grep文本,sed,grep,Sed,Grep,我有以下格式的数据 sometext NAME=abc TIME_TAKEN sometext NAME=xyz{123} REQUEST 我正在尝试在名称和空格之间对数据进行grep。我想在下面的格式输出 abc xyz{123} 我试着用sed和下面的cat一起使用,但它不起作用 cat test.txt | sed 's/NAME=\(.*\)"\+[[:space:]]\+"/\1/g' awk 'sub(/.*NAME= +/,"")

我有以下格式的数据

sometext NAME=abc TIME_TAKEN
sometext NAME=xyz{123} REQUEST
我正在尝试在名称和空格之间对数据进行grep。我想在下面的格式输出

 abc
 xyz{123}
我试着用sed和下面的cat一起使用,但它不起作用

cat test.txt | sed 's/NAME=\(.*\)"\+[[:space:]]\+"/\1/g'

awk 'sub(/.*NAME= +/,"") && sub(/ +.*/,"")' test.txt

注意

匹配作业前后的所有内容:

sed -ne 's/.* NAME=\(.*\) .*/\1/p' test.txt

当心!它将从每行中提取最后一个
名称=…

匹配分配前后的所有内容:

sed -ne 's/.* NAME=\(.*\) .*/\1/p' test.txt
当心!它将从每行中提取最后一个
名称=…

这可能适用于您(GNU-sed):

sed-En/*\这可能适合您(GNU-sed):


sed-En的/*\尝试以下命令

cat test.txt | sed 's#.*NAME=\(.* \).*#\1#'
说明:

cat test.txt | sed 's# .*NAME=        \(.* \)                  .*      #\1#'
cat fileName | sed 's# All upto NAME= extract(upto any space)  skip all

请尝试以下命令

cat test.txt | sed 's#.*NAME=\(.* \).*#\1#'
说明:

cat test.txt | sed 's# .*NAME=        \(.* \)                  .*      #\1#'
cat fileName | sed 's# All upto NAME= extract(upto any space)  skip all

为什么要用双引号?我在输入数据中看不到任何错误。没有它就出错了,所以为什么用双引号?我在输入数据中看不到任何内容。它在没有它的情况下出错,因此尝试此操作可能会返回比您预期的更多的内容,请记住
*
是贪婪的。这可能会返回比您预期的更多的内容,请记住
*
是贪婪的。