使用sed删除行的未知部分

时间:2011-07-28 04:14:18

标签: sed

我想从:

[重要文字,数字/字母] [未知文字] / Windows / [我要保留的文字,将有斜线]

[重要文字,数字/字母] Windows / [我要保留的文字,有斜线]

未知文本可能是一系列可能性,但它不包含Windows

所以基本上我想在[重要文本,数字/字母]之后的Windows之前切断文本

重要文本后面的空格将始终是行中的第一个空格

如果未知文本及其后面的斜杠不存在,我也希望它能够正常工作

1 个答案:

答案 0 :(得分:0)

您没有提供任何实际示例,因此我认为这样的事情是一个有效的例子

abc123 unknown text which might have spaces/Windows/There might be /es here

我的主要假设是第一部分没有空格。否则你真的没有办法在重要文本和未知文本之间划分界限。

你可以用

来实现你的目标
sed -e 's/^\([^ ]\) [^/]*\/Windows/\1 Windows/'

第一组parantheses从行的开头捕获所有没有空格的东西。然后我们扔掉所有东西,直到'/ Windows'并保留所有内容。