regular expression 小問題 - Linux

By Susan
at 2016-06-01T12:59
at 2016-06-01T12:59
Table of Contents
※ 引述《decken (HAHAHA~)》之銘言:
: 大家好,
: 有一份文件(https://goo.gl/2Vc3Ui):
: 146460673
: PING 10.0.0.6 (10.0.0.6): 56 data bytes
: 想要把146460673及56抓出來,
: 自己試過下列的regular expression:
: cat short_measurement_PING.txt | sed -r 's/([0-9]+).*PING.*([0-9]+) data bytes/\1 \2/g'
: cat short_measurement_PING.txt | sed -r 's/([0-9]+)$.*PING.*([0-9]+) data bytes/\1 \2/g'
: cat short_measurement_PING.txt | sed -r 's/^([0-9]+)$^.*PING.*([0-9]+) data bytes/\1 \2/g'
: 不過完全沒作用,
: 想請問大家有什麼建議嗎?
: 謝謝~
GNU sed only (應該)
sed -r '/^[0-9]+$/ N; s/([0-9]+)\n[^:]*: *([0-9]+).*/\1 \2/'
/^[0-9]+$/ N
^ 代表行開始, $ 代表行結束, N 會把下一行的資料抓進來
=> 符合單行僅有數字時把下一行資料抓進來,並加上 \n
=> 原本的 pattern space 為 146460673
現在變成 146460673\nPING 10.0.0.6 (10.0.0.6): 56 data bytes
s/([0-9]+)\n[^:]*: *([0-9]+).*/\1 \2/
這行為 extended regular expression
所以需要加 -r flag, 且括號不用加反斜線
因為用到 + operator 所以才需要 e-regex
+ 代表至少符合一個以上
--
--
: 大家好,
: 有一份文件(https://goo.gl/2Vc3Ui):
: 146460673
: PING 10.0.0.6 (10.0.0.6): 56 data bytes
: 想要把146460673及56抓出來,
: 自己試過下列的regular expression:
: cat short_measurement_PING.txt | sed -r 's/([0-9]+).*PING.*([0-9]+) data bytes/\1 \2/g'
: cat short_measurement_PING.txt | sed -r 's/([0-9]+)$.*PING.*([0-9]+) data bytes/\1 \2/g'
: cat short_measurement_PING.txt | sed -r 's/^([0-9]+)$^.*PING.*([0-9]+) data bytes/\1 \2/g'
: 不過完全沒作用,
: 想請問大家有什麼建議嗎?
: 謝謝~
GNU sed only (應該)
sed -r '/^[0-9]+$/ N; s/([0-9]+)\n[^:]*: *([0-9]+).*/\1 \2/'
/^[0-9]+$/ N
^ 代表行開始, $ 代表行結束, N 會把下一行的資料抓進來
=> 符合單行僅有數字時把下一行資料抓進來,並加上 \n
=> 原本的 pattern space 為 146460673
現在變成 146460673\nPING 10.0.0.6 (10.0.0.6): 56 data bytes
s/([0-9]+)\n[^:]*: *([0-9]+).*/\1 \2/
這行為 extended regular expression
所以需要加 -r flag, 且括號不用加反斜線
因為用到 + operator 所以才需要 e-regex
+ 代表至少符合一個以上
--
推 dkchronos :招喚obov 04/16 19:23
推 cesar0909 :樓下obov04/16 19:42
推 SNGoMMX :樓下obov 04/16 21:50
→ y3k :上面好多obov 樓下繼續當obov 04/16 21:53
推 obov :恩 沒問題 繼續當obov04/16 22:20
--
Tags:
Linux
All Comments

By Zenobia
at 2016-06-04T06:42
at 2016-06-04T06:42

By Tristan Cohan
at 2016-06-04T09:50
at 2016-06-04T09:50

By Hamiltion
at 2016-06-05T10:14
at 2016-06-05T10:14

By James
at 2016-06-07T09:46
at 2016-06-07T09:46

By Anthony
at 2016-06-11T15:52
at 2016-06-11T15:52

By Madame
at 2016-06-14T04:23
at 2016-06-14T04:23

By Annie
at 2016-06-16T12:37
at 2016-06-16T12:37

By Wallis
at 2016-06-18T07:38
at 2016-06-18T07:38
Related Posts
vim 好用 plugin 分享

By Edward Lewis
at 2016-05-30T12:00
at 2016-05-30T12:00
ntp pool

By Leila
at 2016-05-29T17:36
at 2016-05-29T17:36
Ubuntu Server 安裝好多問題 (15.10)

By Delia
at 2016-05-29T17:15
at 2016-05-29T17:15
windows 真得很容易當機嗎?

By Kumar
at 2016-05-29T13:07
at 2016-05-29T13:07
請推薦基礎快速入門的書

By Catherine
at 2016-05-29T12:34
at 2016-05-29T12:34