テキストからIPアドレスを抽出し、それを変数に格納します

Swatesh Pakhare

以下に示すabdという名前のテキストファイルがあります。

48878 128.206.6.136
34782 128.206.6.137
12817 23.234.22.106

テキストからIPアドレスのみを抽出して変数に格納し、他の目的に使用したいと思います

私はこれを試しました。

for line in `cat abd`
do

ip=`grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' $line`

echo $ip

done

次のようなエラーが発生します

grep: 34782: No such file or directory

grep: 128.206.6.137: No such file or directory

grep: 12817: No such file or directory

grep: 23.234.22.106: No such file or directory

ここで何が悪いのかわかりません。どんな助けでもいただければ幸いです。

ルビノレール

あなたはほとんどそれを最初に正しく持っていました。awk答えはあなたの特定のケースのために良いですが、あなたが使用しようとしていたので、あなたがエラーを受けていた理由は、grepそれが代わりに変数のファイルを探していたかのように。

また、正規表現を使用grep -Eする場合は、安全のために常に使用しています。また、バックティックは非推奨であり、に置き換える必要があると聞いています$()

herestringsgrepをサポートするonシェル持つ変数への正しい方法は、次の3人で入力リダイレクトを使用することです。したがって、コマンド(変数)は実際には次のようになります。<grep$ip

ip="$(grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' <<< "$line")"

検索しているファイルの場合、行ごとwhileに移動することが保証されているため、常にループを使用しますforが、奇妙な間隔があるとループが破棄されることがよくあります。また、無駄な使用を実装しておりcat、入力リダイレクトに置き換えることもできます。これを試して:

while read line; do
  ip="$(grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' <<< "$line")"
  echo "$ip"
done < "abd"

また、使用しているOSやバージョンはわかりませんがgrep、過去にこのコマンドを使用したことがある場合は、通常、中括弧の前にあったエスケープ文字は必要ありません。それはgrep -E、引用符で囲んでバックティックなしで使用しているためか、使用しているためである可能性があります-わかりません。あなたはそれを持っていてもいなくても試して、何が起こるかを見ることができます。

forループを使用するかループを使用するかにかかわらずwhile、それは特定の状況でどちらが機能するか、および実行時間が最も重要であるかどうかに基づいています。OPが各IPアドレスに個別の変数を割り当てようとしているようには見えませんが、ループ自体の中で使用できるように、行内の各IPアドレスに変数を割り当てたいと考えています。$ip反復ごとに1つの変数のみが必要な場合私はこれに私の銃に固執しています。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

応答からテキスト値の一部を抽出し、junit / reassured?を使用して変数に格納します。

分類Dev

各リストからn番目の要素を抽出し、それを新しい列に格納します

分類Dev

同じクラスから複数の入力値を取得し、それをjson変数に格納します

分類Dev

同じクラスから複数の入力値を取得し、それをjson変数に格納します

分類Dev

テキスト入力の値を取得し、それらを配列に格納します

分類Dev

pタグ内のテキストを取得し、変数に格納します

分類Dev

pのテキストの行数を確認し、変数に格納します

分類Dev

セルアドレスを参照し、それをRangeオブジェクトに格納します

分類Dev

整数を抽出し、タプルのリストから新しい変数として格納します

分類Dev

awkを使用して、2進数をテキストファイルに文字列として格納してから、16進数に変換します

分類Dev

R変数から特定のテキストを抽出します

分類Dev

バイトデータ型として格納されているxmlから特定のxml子アイテムを変数からpython3のリストに抽出します

分類Dev

ネストされたキー名を変数に格納します

分類Dev

パスを変数に格納し、それをcdで使用します

分類Dev

MySQLフィールドから単一の値を取得し、それを変数に格納します

分類Dev

Excelはテキスト文字列から数値を抽出し、それらを合計します

分類Dev

Ruby onRails。テキストフィールドDBに変数を格納します

分類Dev

変数に格納されている入力テキスト値を表示します

分類Dev

ansible-変数に格納されている各リストアイテムに文字列を追加します

分類Dev

リストから指定された値を削除し、アキュムレータに格納する

分類Dev

C ++ループでスレッドを作成し、それらをベクターに格納します

分類Dev

シェルスクリプト-CPU使用率(%cpu)を取得し、それを変数に格納します

分類Dev

変数に格納されているクラスからオブジェクトを作成します

分類Dev

Bashを使用してカスタムテキストファイルからIPアドレスを抽出します

分類Dev

Python-リストをIPのアドレスと異なるデータを含むテキストファイルからCSVに変換します

分類Dev

複数のデータエントリを含むテキストファイルを読み取り、それらをオブジェクトに変換して配列に格納します

分類Dev

<options>を変数に格納し、それらを任意の<select>に配置します

分類Dev

DNSをテキストファイルからIPアドレスに解決します

分類Dev

EvaluationJavascriptを使用してWKWebViewからHTMLを取得し、それを変数に格納します(Swiftを使用)

Related 関連記事

  1. 1

    応答からテキスト値の一部を抽出し、junit / reassured?を使用して変数に格納します。

  2. 2

    各リストからn番目の要素を抽出し、それを新しい列に格納します

  3. 3

    同じクラスから複数の入力値を取得し、それをjson変数に格納します

  4. 4

    同じクラスから複数の入力値を取得し、それをjson変数に格納します

  5. 5

    テキスト入力の値を取得し、それらを配列に格納します

  6. 6

    pタグ内のテキストを取得し、変数に格納します

  7. 7

    pのテキストの行数を確認し、変数に格納します

  8. 8

    セルアドレスを参照し、それをRangeオブジェクトに格納します

  9. 9

    整数を抽出し、タプルのリストから新しい変数として格納します

  10. 10

    awkを使用して、2進数をテキストファイルに文字列として格納してから、16進数に変換します

  11. 11

    R変数から特定のテキストを抽出します

  12. 12

    バイトデータ型として格納されているxmlから特定のxml子アイテムを変数からpython3のリストに抽出します

  13. 13

    ネストされたキー名を変数に格納します

  14. 14

    パスを変数に格納し、それをcdで使用します

  15. 15

    MySQLフィールドから単一の値を取得し、それを変数に格納します

  16. 16

    Excelはテキスト文字列から数値を抽出し、それらを合計します

  17. 17

    Ruby onRails。テキストフィールドDBに変数を格納します

  18. 18

    変数に格納されている入力テキスト値を表示します

  19. 19

    ansible-変数に格納されている各リストアイテムに文字列を追加します

  20. 20

    リストから指定された値を削除し、アキュムレータに格納する

  21. 21

    C ++ループでスレッドを作成し、それらをベクターに格納します

  22. 22

    シェルスクリプト-CPU使用率(%cpu)を取得し、それを変数に格納します

  23. 23

    変数に格納されているクラスからオブジェクトを作成します

  24. 24

    Bashを使用してカスタムテキストファイルからIPアドレスを抽出します

  25. 25

    Python-リストをIPのアドレスと異なるデータを含むテキストファイルからCSVに変換します

  26. 26

    複数のデータエントリを含むテキストファイルを読み取り、それらをオブジェクトに変換して配列に格納します

  27. 27

    <options>を変数に格納し、それらを任意の<select>に配置します

  28. 28

    DNSをテキストファイルからIPアドレスに解決します

  29. 29

    EvaluationJavascriptを使用してWKWebViewからHTMLを取得し、それを変数に格納します(Swiftを使用)

ホットタグ

アーカイブ