ファイルで見つかった文字列の次の50文字を返します。

ファイルで見つかった文字列の次の50文字を返します。

私は正規表現と検索パターンを扱っていないので、どこから始めるべきかわかりません。

<td id="latest_button">test.txtで次の50文字を見つけて返す必要があります。 bashスクリプトをターゲットにしているので、他の言語は難しいでしょう。

答え1

私は通常これを達成するためにgrep -oを使用します。

grep -o '<td id="latest_button">..................................................'

または拡張モードを使用してください。

grep -E -o '<td id="latest_button">.{50}'

もちろん、ラベル自体も入手できます。

答え2

あなたがしたいようにhtmlを解析するのが最善のアイデアであるかどうかはわかりませんが、とにかく改行文字があればうまくいきます。それ以外の場合は、tr部分を削除できます。

cat yourFile.html | tr -d '\n' | awk -F'<td id="latest_button">' '{print $2}' | cut -c -50

したがって、trは改行文字を削除し、すべてを1行の文字列として扱います。

awk -F区切り文字をラベルに設定し、$ 2を印刷し、区切り文字の後ろの部分を印刷します。

cut -c -50最初の50文字のみを印刷します。

関連情報