neterrore=connectionFailure&u=https%3A//data.com/callback%3Fcode%3DY6mOqlD2Cghcub29IlDKB7KHFuGCemVeoNr1lF5r6_c%26state%3DcDi00NM8gO8BImQwp1G0gmdIznygTwXQ&
이 문자열에서는 특정 문자열 사이를 추출해야 code%3D
합니다 c%26state
.
DY6mOqlD2Cghcub29IlDKB7KHFuGCemVeoNr1lF5r6
주어진 행의 출력을 가져와야 합니다.
답변1
code%3D와 c%26state 사이에 문자열이 필요하다고 가정하면 이것이 도움이 될 수 있습니다.
echo 'neterrore=connectionFailure&u=https%3A//data.com/callback%3Fcode%3DY6mOqlD2Cghcub29IlDKB7KHFuGCemVeoNr1lF5r6_c%26state%3DcDi00NM8gO8BImQwp1G0gmdIznygTwXQ&' | sed 's/.*code%3D\(.*\)c%26state.*/\1/'
답변2
cat /tmp/testfile
"neterrore=connectionFailure&u=https%3A//data.com/callback%3Fcode%3DY6mOqlD2Cghcub29IlDKB7KHFuGCemVeoNr1lF5r6_c%26state%3DcDi00NM8gO8BImQwp1G0gmdIznygTwXQ&" <-- ignore the ""
string=`awk -F% '{print $4}' /tmp/testfile`
O/P:3DY6mOqlD2Cghcub29IlDKB7KHFuGCemVeoNr1lF5r6_c
echo $string| sed 's/^.\(.*\).\{2\}$/\1/'
O/P: DY6mOqlD2Cghcub29IlDKB7KHFuGCemVeoNr1lF5r6