Linux sed仅打印字符串中的子字符串

Linux sed仅打印字符串中的子字符串,linux,awk,sed,Linux,Awk,Sed,我试图在一个大数据行中的字符串中获取一个子字符串。 regex(INC………..)匹配我试图获取at值的子字符串,但我无法将子字符串的值获取到变量中或打印出来 该值周围的字符串部分为 ......TemplateID2":null,"Incident Number":"INC000006743193","Priority":"High","mc_ueid":null,"Assint...... 当我尝试此操作或打印出整个字符串时,我得到了“s”的错误char 26:unknown选项 cat

我试图在一个大数据行中的字符串中获取一个子字符串。 regex(INC………..)匹配我试图获取at值的子字符串,但我无法将子字符串的值获取到变量中或打印出来

该值周围的字符串部分为

......TemplateID2":null,"Incident Number":"INC000006743193","Priority":"High","mc_ueid":null,"Assint......
当我尝试此操作或打印出整个字符串时,我得到了“s”的错误char 26:unknown选项

cat /tmp/file1 | sed -n  's/\(INC............\)/\1/p'

cat /tmp/file1 | sed -n 's/./*\(INC............).*/\1/'

使用sed,您需要删除字符串前后的内容:

 sed 's/.*\(INC............\).*/\1/' file
但是,如果您的实现支持
-o
选项,您也可以使用
grep

grep -o 'INC............' file
也可以使用Perl:

perl -lne 'print $1 if /(INC............)/' file

使用sed,您需要删除字符串前后的内容:

 sed 's/.*\(INC............\).*/\1/' file
但是,如果您的实现支持
-o
选项,您也可以使用
grep

grep -o 'INC............' file
也可以使用Perl:

perl -lne 'print $1 if /(INC............)/' file

这看起来像JSON。如果它周围有你在发布前剪下的
{brages}
(tsk-tsk),如果它可用,你一定要使用
jq
。也就是说,这个页面需要一些awk

POSIX(无处不在):

GNU(在GNU/Linux上工作):

如果每行有多个匹配项(GNU):


这看起来像JSON。如果它周围有你在发布前剪下的
{brages}
(tsk-tsk),如果它可用,你一定要使用
jq
。也就是说,这个页面需要一些awk

POSIX(无处不在):

GNU(在GNU/Linux上工作):

如果每行有多个匹配项(GNU):


你的数据是JSON吗?如果是这样,请使用jq或其他可以解析JSON的东西。您的数据是JSON吗?如果是这样,请使用jq或其他可以解析JSON的工具。