作者NOBUNAGA01 (0.0)
看板Linux
标题[问题] 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
我在
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'
只会吐原始字串给我...
Current Frequency:2.412 GHz (Channel 3)
请问到底该怎麽取才对呢orz
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.243.105.139 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1605960791.A.05F.html
1F:推 Gold740716: 多一个反斜线 \([0-9]*\) 和 \1 就可以了 11/21 20:28
试出来这样可以 但是反而看不懂了啊...
's/[ \\t]*Current Frequency:.*Channel \([0-9]*\))/\1/p'
如果只有一个右括弧的话得到结果是 3)
为什麽多一个右括弧就会把结果的右括弧削掉....
※ 编辑: NOBUNAGA01 (111.243.105.139 台湾), 11/21/2020 21:17:18
2F:推 Gold740716: 有二个括号就会匹配到第二个括弧,然後也取代 11/21 21:34
3F:推 bitlife: 以下命令不知是否是你要的结果 ( <f> 为输入档) 11/21 22:10
4F:→ bitlife: grep -o -e 'Channel [0-9]*' < <f> | grep -o -e '[0-9] 11/21 22:11
5F:→ bitlife: *' 11/21 22:11