awk 또는 sed를 사용하여 라인의 일부를 추출합니다.

awk 또는 sed를 사용하여 라인의 일부를 추출합니다.
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

관련 정보