我有一个像这样的命令输出
hdisk10 128000 200B75Y4191001707210790003IBMfcp
hdisk11 128000 200B75Y4191001807210790003IBMfcp
hdisk13 128000 200B75Y4191001A07210790003IBMfcp
hdisk14 128000 200B75Y4191001B07210790003IBMfcp
hdisk15 128000 200B75Y4191001C07210790003IBMfcp
hdisk16 128000 200B75Y4191001D07210790003IBMfcp
hdisk17 128000 200B75Y4191001E07210790003IBMfcp
hdisk18 128000 200B75Y4191001F07210790003IBMfcp
hdisk19 128000 200B75Y4191002007210790003IBMfcp
我只想要包含hdisk
名称的第一列。我想删除每一行hdiskXX
之后的所有内容。 XX
可以是1-3位数,大多数是2位数。
我尝试了以下正则表达式
查找: hdisk[0-9][0-9].*
替换:hdisk[0-9][0-9]
但结果字符串类似于hdisk[0-9][0-9]
而不是hdisk10
。为什么不将[0-9]
解释为正则表达式而只是简单地对其进行处理?
我应该在这里使用什么正则表达式来实现我想要的目标?
我在Notepad ++上尝试这个,它支持正则表达式搜索和替换。
答案 0 :(得分:3)
您需要使用捕获组。尝试搜索(hdisk[0-9]+).*
并将其替换为\1
。
\1
表示“在第一个括号内找到的任何内容”。
(参考:http://ozansafi.wordpress.com/2008/12/11/notepad-regular-expression-usage/)
答案 1 :(得分:1)
这很普遍但应该有用。找到\s+\d+\s+200B.*
并替换为空字符串。我不确定你是否可以在记事本++中使用\ d和+ ...自己检查