テキストファイルからhttps文字を削除する

テキストファイルからhttps文字を削除する

txtファイルからhttpとhttpsの両方を削除する必要があります。

このように:

http://ac.tecnicasdeinvasao.com
http://go.tecnicasdeinvasao.com
http://lp.tecnicasdeinvasao.com
https://ac.tecnicasdeinvasao.com
http://secreto.tecnicasdeinvasao.com
https://go.tecnicasdeinvasao.com
https://lp.tecnicasdeinvasao.com
https://secreto.tecnicasdeinvasao.com

到着

ac.tecnicasdeinvasao.com
go.tecnicasdeinvasao.com
lp.tecnicasdeinvasao.com
ac.tecnicasdeinvasao.com
secreto.tecnicasdeinvasao.com
go.tecnicasdeinvasao.com
lp.tecnicasdeinvasao.com
secreto.tecnicasdeinvasao.com

sedを試してみましたが、成功しませんでした。

答え1

私はそれを好むawkので、sed私がすることは次のとおりです。

awkカスタマイズを定義できます。フィールド区切り記号、これは問題を非常に簡単にします。

完全なURLを含むファイルがあると仮定すると、tstfile.txt次の文はフィールド区切り記号-F)を//次のように2番目のフィールド($2)を印刷します。

$ awk -F'//' '{print $2}' tstfile.txt
ac.tecnicasdeinvasao.com
go.tecnicasdeinvasao.com
lp.tecnicasdeinvasao.com
ac.tecnicasdeinvasao.com
secreto.tecnicasdeinvasao.com
go.tecnicasdeinvasao.com
lp.tecnicasdeinvasao.com
secreto.tecnicasdeinvasao.com

結果をファイルに保存するには、リダイレクトを使用できます>somefile.txt

ディストリビューションでGNUバージョンawk(別名)を使用している場合は、オプションでgawk入力ファイルを更新できます。所定の位置に:

$ awk -i inplace -F'//' '{print $2}' tstfile.txt
$

これで、コンテンツはtstfile.txt上記のものとまったく同じになり、最終目標に応じて1〜2ステップを節約できます。元のファイルを別のファイル名で保存するなどの他のオプションについては、以下を参照してください。この回答

答え2

sedを使ってリクエストしたので

そしてsed読みやすくなります:

sed  -E 's/http.+[/]//'

そしてsed作成する方が簡単です。

sed -E 's/http.+\///'

どちらも同じことをします。sedバックフラッシュで読み/select/replace/にくいので使用する形式です。\

  • -E「最新」バージョンの正規表現を使用しています。
  • s検索と置換Sトリン
  • .+2つの意味があります。.ドットはすべての文字を表します。この場合、s と+記号は、次のすべてを選択するために使用されます。.
  • 正規表現の世界で文字が特別な意味を持つ場合は、通常、逆\効果を使用して文字をエスケープする必要があります。この場合は話す必要があります。sed最後のものまですべてを選択するので、このように/エスケープする必要があり\/ますが、読みにくく、\///最後のものは形式からのものであるため、角かっこを使用してエスケープすることもできます。//選択したものを削除したいので、何も書きません。 >/select/replace/[/]//

なぜなら、すべては次のように始まるからです。時間(同じです)短くすることができます

sed -E 's/.+\///'  
sed -E 's/.+[/]//'

これは --> テキストの先頭から最後まですべてを選択することを意味します/-->whateverGoesHere/

答え3

この試み:

awk '{sub(/https?:\/\//,"");print}' file.txt > outfile.txt

awk入力ラインを繰り返しながら、各ラインでプログラムを実行します。一致させる正規表現を指定しなかったため、中括弧内のコードはすべての行で実行されます。このsub関数はスラッシュ間の正規表現を一致させ、引用符で囲まれた空の文字列に置き換えます。正規表現の疑問符のため、「s」がオプションになります。

関連情報