Unexpected header.nextMessage.response.statusLine.statusCode := 403 with 180 unmatched
我想将以下文字格式化为var:nextMessage.response.statusLine.statusCode := 403
我使用了这个命令:exp=$(grep -oP '(?<=header).+(?=with)' text.txt)
但它只获取了这部分:.nextMessage.response.statusLine.statusCode
没有403。
答案 0 :(得分:2)
声音就像您只是使用了错误的工具一样,您只需要:
$ var=$(sed 's/.*header\.\(.*\) with.*/\1/' file)
$ echo "$var"
nextMessage.response.statusLine.statusCode := 403
但目前的问题很难从你的问题中看出来。
在尝试确定用于处理文本的UNIX工具时,请记住以下准则:
grep = g/re/p
= G 的ed
命令,用于搜索 R egular E xpression和 P rint结果字符串。它不是编辑文本的工具。
sed = S tream ED itor =在各行上执行简单替换。过去必须做更多,仍然有大量奇怪的语言结构让它,但除了s,g和p(与-n)以外的所有东西在20世纪70年代中期发明awk时已经过时了。
awk =通用文本操作工具,在所有UNIX安装上标配sed和grep。将它用于任何不适合grep或sed类别的东西。
答案 1 :(得分:-2)
试试这个
&#xA;&#xA; exp = $(grep -oP'(?= nextMessage)。+(?= with)'text.txt)&# xA;
&#xA;&#xA; 或
&#xA;&#xA; exp = $(cat text.txt | grep -oP'(?= nextMessage)。+(?= with)')&#xA;
&#xA;&#xA; 都适合我。
& #xA;