.txt ファイルから URL を削除する

.txt ファイルから URL を削除する

次の形式の多くのテキストとURLを含む大容量のテキストファイルがあります。

https://www.website.com/BLAH-BLAH/XX/123567890?@=@81%@38&magic=1&

URL "1234567890"の最後の部分は実際にはランダムな文字列であり、毎回同じ数字ではありません。

この形式のURLを除くすべてのテキストを削除したいです。私も次の記事をすべて削除したい... / XX / 1234567890

明確にするために、最終的には次のURLを含むファイルが必要です。

https://www.website.com/BLAH-BLAH/XX/123567890

答え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

関連情報