次の形式の多くのテキストとURLを含む大容量のテキストファイルがあります。
https://www.website.com/BLAH-BLAH/XX/123567890?@=@81%@38&magic=1&
URL "1234567890"の最後の部分は実際にはランダムな文字列であり、毎回同じ数字ではありません。
この形式のURLを除くすべてのテキストを削除したいです。私も次の記事をすべて削除したい... / XX / 1234567890
明確にするために、最終的には次のURLを含むファイルが必要です。
答え1
URLが新しい行にあると仮定すると、それをクリーンアップする必要があります。
grep "https"
(これにより、httpsを含むすべての行を検索して返します。興味のあるURLを含まない行に任意のテキストにhttpsが含まれている場合は、引用符で囲まれた検索文字列を長く拡張できます。)
編集(不要な内容を読み取る):編集2:最初の「/ XX /」の後の10桁のURLを削除するには、awkを使用します。
awk -F'/XX/' '{print $1 "/XX/" substr($2,0,10)}'
これは与えられた入力を区切り文字(この場合は「/XX/」)に分割し、最初の値、つまり最初の「/XX/」より前のすべての項目、次に/XX/、10文字の長さの部分文字列(最初文字から始まる)および/XX/以降の内容です。
次のようにパイプで接続できます(URLがurls.txtというテキストファイルにあるとします)。
cat urls.txt | grep "https" | awk -F'?' '{print $1 "/XX/" substr($2,0,10)}'
答え2
grep -Po 'https?://\S+/\w\w/\w{1,10}\b' bigfile.txt