我的输出看起来像这样:
16 1VirtualMachine1 [aljkas] some_data.blah
17 Virtual Machine 1 [jklaj] some_more_data.blah
23 Virtu al Machin e 1 [adwv] some_more_data.blah
12 Virtual_Machine one [awa] some_more_data.blah
11 VirtualMa chineone [kladfsa] some_more_data.blah
我只想获取空格之间的内容,直到 [
。
所以输出只会返回:
1VirtualMachine1
Virtual Machine 1
Virtu al Machin e 1
Virtual_Machine one
VirtualMa chineone
我的正则表达式看起来像这样(但没有按照我的想法去做):
a_cmd | grep -o -E '[[:space:]]{2,}[a-zA-Z0-9\.,_()]+.+[[:space:]]{2,}'
这只会返回所有原始输出。我做错了什么?
最佳答案
使用sed
:
sed 's/[0-9 ]* \(.*\)\[.*/\1/;/^$/d' your.file
关于正则表达式在特定字符处停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18466953/