Re: [问题] sed 取代问题求教

楼主: wens (文思)   2020-11-23 12:29:11
※ 引述《NOBUNAGA01 (0.0)》之铭言:
: 标题: [问题] sed 取代问题求教
: 时间: Sat Nov 21 20:13:08 2020
:
:
: 原始文档
: xxxxx(可忽略)
: Current Frequency:2.412 GHz (Channel 3)
:
: 要抽出后面channel的数字
: "号称"原本可行的语法
: sed -n 's/[ \\t]*Current Frequency:.*(Channel \\([0-9]*\\))/\\1/p'
: 不过实际执行是no match
单引号 ' ' 内的反斜线不用跳脱 (escape) ,也就是不用连续两个
这样就会有结果了。
: 我在https://regex101.com/ 玩了一下
: 可行的抽出有两种
: [ \\t]*Current Frequency:.*(Channel ([0-9]*))\)
: 用\2 可以抽出3
: [ \\t]*Current Frequency:.*\(Channel ([0-9]*)\)
: 用\1 就能抽出3
: 可是把上面两个丢去GNU sed就挂了....
: https://sed.js.org/
: 输入
: 's/[ \\t]*Current Frequency:.*\(Channel ([0-9]*)\) /\1/p'
^
后面多了一个空白。
另外 sed / grep 默认是吃 basic regular expressions ,
一般括号不用加反斜线跳脱,要做 match 用的括号才要加。
如果你觉得写起来很烦,可以 sed / grep 加上 -E 改用 extended regex ,
规则就反过来了。当然 basic / extended 还有其他的差异,有兴趣可以自己查。
: 只会吐原始字串给我...
: Current Frequency:2.412 GHz (Channel 3)
:
: 请问到底该怎么取才对呢orz
:
:
作者: bitlife (BIT一生)   2020-11-23 13:25:00
当时就注意力分散,熊熊就加了上去 XD

Links booklink

Contact Us: admin [ a t ] ucptt.com