sedを使用して、無関係な情報を削除できます。
sed 's/[^=]\+=//; s/&.*$//' file
または、awkと賢明なフィールドセパレーターを使用します。
awk -F '[=&]' '{print $2}' file
内容file
:
cat <<EOF > file
/watch?v=yPrg-JN50sw&
"/watch?v=yPrg-JN50sw&" class=
EOF
出力:
yPrg-JN50sw
yPrg-JN50sw
コメントに記載されている新しい要件に対応する編集
cat <<EOF > file
<div id="" yt-grid-box "><div class="yt-lockup-thumbnail"><a href="/watch?v=0_NfNAL3Ffc" class="ux-thumb-wrap yt-uix-sessionlink yt-uix-contextlink contains-addto result-item-thumb" data-sessionlink="ved=CAMQwBs%3D&ei=CPTsy8bhqLMCFRR0fAodowXbww%3D%3D"><span class="video-thumb ux-thumb yt-thumb-default-185 "><span class="yt-thumb-clip"><span class="yt-thumb-clip-inner"><img src="//i1.ytimg.com/vi/0_NfNAL3Ffc/mqdefault.jpg" alt="Miniature" width="185" ><span class="vertical-align"></span></span></span></span><span class="video-time">5:15</span>
EOF
賢明なレコード区切り文字でawkを使用します。
awk -v RS='[=&"]' '/watch/ { getline; print }' file
この種のタスクには、適切なXMLパーサーを使用する必要があることに注意してください。