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

関連情報