このコードを含むスクリプトがあります。
for i in {2..9}
do
grep "Node${i}\|01, source address = 00:00:00:00:00:0${i}" t1.txt > t2.txt
done
「a」から「f」までの場合も処理されるように、ループを「9」から16進MACアドレスの「f」文字に拡張できますか?
ベストアンサー1
文字に別の中かっこ拡張を追加するだけです。
for i in {2..9} {a..f}
do
grep "Node${i}\|01, source address = 00:00:00:00:00:0${i}" t1.txt > t2.txt
done
これは実際に望むものではないかもしれません。このコードを実行するたびにその内容が上書きされるため、最終的な反復結果のみが表示されますt2.txt
。一致しないと、他のコンテンツが一致しても空のファイルが表示されます。たぶん以下を追加したいと思います:
for i in {2..9} {a..f}
do
grep "Node${i}\|01, source address = 00:00:00:00:00:0${i}" t1.txt >> t2.txt
done
あるいは、ループはまったく必要ではなく、次のことが必要になる可能性があります。
grep -E 'Node[2-9a-f]|01, source address = 00:00:00:00:00:0[2-9a-f]' t1.txt > t2.txt