私は助けが必要です。
次の行に部分文字列を取得する必要があります
11:46:24.851239 IP (tos 0x0, ttl 128, id 11289, offset 0, flags [none], proto UDP (17), length 229)
結果は次のようになります。ttl 128
あなたが私を助けてくれることを願っています!
ありがとう!
これを試してみてください:
echo '11:46:24.851239 IP (tos 0x0, ttl 128, id 11289, offset 0, flags [none], proto UDP (17), length 229)' |
grep -oP "\bttl\s+\d+\b"
ttl 128
\b
単語の境界です\s
スペースです+
少なくとも1つ以上の先行文字を意味します-P
switchは、PCREの高度な便利な構文です。grep
-o
スイッチは、一致する部分のみを印刷することを意味しますこれを変数に入れたい場合:
var=$(
echo '11:46:24.851239 IP (tos 0x0, ttl 128, id 11289, offset 0, flags [none], proto UDP (17), length 229)' |
grep -oP "\bttl\s+\d+\b"
)
echo "$var"
使用してみてくださいgrep -o 'ttl [0-9]\+'
:
$ echo '11:46:24.851239 IP (tos 0x0, ttl 128, id 11289, offset 0, flags [none], proto UDP (17), length 229)' | grep -o 'ttl [0-9]\+'
ttl 128
sedの使用:
sed 's/.*[ ]*\(ttl[ ]*[0-9]*\).*/\1/' input