
bashでのif文内正規表現についての質問です。
IPアドレスを正規表現にてマッチングさせたいのですが実現できなく困っています。
たとえば192.168.1.の1から128を引っ掛けたいのですがどうすれば実現できますか?
今は下記のように書いていますが、これではだめみたいです。
ARCHKIP=`netstat -rn | awk '{ print $1 }'`
for i in `echo $ARCHKIP`
do
if [[ $i = 192.168.1.[1-128] ]];then
echo "OK"
fi
done
わかる方お教えください。
No.2ベストアンサー
- 回答日時:
文字クラスに誤解があると思います。
[1-128] の文字クラスは、1から 128 までにマッチするのではなく、1, 2, 8 のいずれかの文字にマッチします。- の両側に複数文字をを指定することはできません。次の
正規表現を試してみてください。(なお、見苦しくなるのでピリオドはエスケープしていません。)
netstat -rn | awk '{ print $1 }' | grep -E "192.168.1.([1-9][0-9]?|1([01][0-9]|2[0-8]))$"
No.3
- 回答日時:
詳しい説明をし出すときりがないですが、bashの機能では正規表現は使えません。
ファイルマッチ( ? が任意の一文字、* が任意の文字列、など)が使えます。これを使うと、
for i in $ARCHKIP
do
case $i in
192.168.1.[1-9]|192.168.1.[1-9][0-9]|192.168.1.1[01][0-9]|192.168.1.12[0-8]) echo OK ;;
esac
done
あるいは、前半後半を分割して、
for i in $ARCHKIP
do if [[ ${i:0:10} = 192.168.1. && ${i:10} -ge 1 && ${i:10} -le 128 ]]
then echo OK
fi
done
遅くなりましたが、丁寧にありがとうございました!
一行にまとまっててわかりやすいです。
すべては私の誤解、あらためて恥ずかしーです。
No.1
- 回答日時:
こんにちは。
bash で上記のような正規表現ができるかどうかは、わかりません。
しかし、
以下で同じことにはなりませんでしょうか?
netstat -rn | awk '{ print $1 }' | grep "192.168.1.[1-128]"
この回答への補足
回答ありがとうございます。
上記の実行結果では残念ながらだめでした。
netstat -rn | awk '{ print $1 }' | grep -E "192.168.1.[1-128]"
でも192.168.1.192などが引っかかってしまうためNGなようなのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) awkの正規表現での最左最短マッチング 3 2022/07/01 00:10
- PHP preg_matchで Warning: Undefined variableが出ます 1 2022/11/15 17:06
- UNIX・Linux Linuxのbash環境下です。 1 2022/11/27 12:31
- UNIX・Linux Debianでシェルスクリプトにおいて正規表現の条件文で[[,]]が使えないので困ってます 2 2023/01/20 09:27
- PHP PHP MySql ページング 2 2022/09/20 06:38
- UNIX・Linux Linuxの実行結果を修正したいです。 2 2022/11/23 08:32
- その他(プログラミング・Web制作) atcoder python コードへの助言 2 2022/08/12 15:31
- その他(プログラミング・Web制作) pythonのmap、結果の利用は1度だけ? 5 2022/06/11 12:33
- UNIX・Linux 次のif文について意味を教えてください。 1 2022/11/27 16:55
- Java JAVAの1つの正規表現で上記Textすべてと合致する正規表現を教えてください。 4 2022/11/06 08:46
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
LinuxでWine使うとどのくらいWi...
-
WinSCPでLinux(CentOS6.10)に...
-
ubuntu(linux)のシャットダウン...
-
Rasberry pi のオンボードNICの...
-
Windowsのローカルディレクトリ...
-
Core 2 Duo の古いパソコンに最...
-
Linux のシェルスクリプトの強...
-
ssl_request_logの必要性について
-
インストールできないですどう...
-
tarで纏める際に、複数場外した...
-
linuxサーバーのキャッシュをク...
-
2TBのUSBメモリを2000円ほどで...
-
Lubuntuのデスクトップのアイコ...
-
ubuntuのシャットダウンが進ま...
-
Postfixでドコモメールに送信す...
-
bashでシングルクォート内の変...
-
2TBのUSBメモリを入手したので...
-
Linuxでブートディスクの交換後...
-
Ububtuでファイル共有できない...
-
ubuntuで デイスク/deb/loopと...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
LinuxでWine使うとどのくらいWi...
-
Core 2 Duo の古いパソコンに最...
-
Linux のシェルスクリプトの強...
-
ubuntu(linux)のシャットダウン...
-
bashでシングルクォート内の変...
-
ubuntuで デイスク/deb/loopと...
-
apacheでリバースプロキシを設...
-
CentOSが起動時にフリーズ
-
ubuntuのシャットダウンが進ま...
-
ubuntu が起動しない。
-
Windowsのローカルディレクトリ...
-
Ububtuでファイル共有できない...
-
Ubuntu on Xorgのログインについて
-
ログにserver reached MaxReque...
-
「/var/log」内のログの削除の...
-
ubuntu 24 へのCanon 複合機ス...
-
ssl_request_logの必要性について
-
私のパソコンでVirtualBoxは使...
-
WineのRufusでデバイスを検知す...
-
LinuxのノートパソコンでDVDコ...
おすすめ情報