使用bash,grep,split,awk或sed,我想捕获
ASPSESSIONIDSUSTQBQS=AAHNFMBAGABAILMKCDGIIMFJ
这
Set-Cookie: ASPSESSIONIDSUSTQBQS=AAHNFMBAGABAILMKCDGIIMFJ; secure; path=/
'ASPSESSIONID'始终保持相同+ 8个随机字符( SUSTQBQS )。
此变量可能并不总是位于第二列或'Set-Cookie:'
之后有人可以帮忙吗?
答案 0 :(得分:2)
使用awk
:
awk -F"[ ;]" '{print $2}' FileName
将字段分隔符设置为space
和;
。然后打印2nd field
。
答案 1 :(得分:0)
试试这个sed
命令
sed 's/[^:]\+..\([^;]\+\).*/\1/' FileName
<强>解释强>
[^:]\+ -- Remove the charecters until :
.. -- Remove two characters
\([^;]\+\) -- Capture the group until ; found
.* -- Remove the all character after capture the group
\1 -- Finally print the captured group
输出
ASPSESSIONIDSUSTQBQS=AAHNFMBAGABAILMKCDGIIMFJ
答案 2 :(得分:0)
基本的正则表达式结构在各种程序中是相同的 它可以用文字解释为:冒号/空格(:)和分号(;)之间的文本。其中,正则表达式是:
: ([^;]*);
可以分配给var:
RE=': ([^;]*);'
然后,我们可以在
中使用它while read l; do
[[ $l =~ $RE ]] && echo "${BASH_REMATCH[1]}";
done <file
gawk -v RE="$RE" '$0 ~ RE { print gensub(".*"RE".*","\\1",1); }' file
sed -rn 's/^.*'"$RE"'.*$/\1/p' file # using -r avoids the several `\`