Use*_*345 1 linux bash grep sed
我test_file在Linux.
ags;'s
dkfprper
sdkl;d;;'s
ip access
100 200 remark
50 deny pdldsl;l;sd;;l;d
permit eyuopopqwopq
10 permit eteioe
200 200 200 deny abc
remark aiii[dsigdfidflkfk
1 deny
Run Code Online (Sandbox Code Playgroud)
现在我想提取包含线ip or remark or deny or permit在其中
我做了如下。
grep -E 'ip|remark|deny|permit' test_file >> string_check
Run Code Online (Sandbox Code Playgroud)
结果如下
ip access
100 200 remark
50 deny pdldsl;l;sd;;l;d
permit eyuopopqwopq
10 permit eteioe
200 200 200 deny abc
remark aiii[dsigdfidflkfk
1 deny
Run Code Online (Sandbox Code Playgroud)
现在,我想numbers and spaces从行中删除所有的,直到我得到ip or remark or deny or permit作为起始词。
我想要的结果是
ip access
remark
deny pdldsl;l;sd;;l;d
permit eyuopopqwopq
permit eteioe
deny abc
remark aiii[dsigdfidflkfk
deny
Run Code Online (Sandbox Code Playgroud)
我已经做了如下,但我没有得到任何结果
sed 's/^ *//g' string_check
Run Code Online (Sandbox Code Playgroud)
这仅删除行首的空格
我怎样才能达到我的结果?
sed -E -n 's/^[ 0-9]*(ip|remark|deny|permit)/\1/p' test_file
Run Code Online (Sandbox Code Playgroud)
打破这个:
sed -E说使用“扩展”正则表达式语法;没有它,你将需要更多的反斜杠sed -n说不打印行,除非使用p命令s///p 说如果更换完成就打印出该行| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |