2014-11-02 58 views
-2

内容我在Red Hat Linux的机器是,需要在文件中,应用以下的东西:替代文件在Linux中

这是我有:

 
42506F0BB83839 

需转换如下:

 
^S:CELL:42506F0BB83839.*$  WM_PLUTO 

其中WM_PLUTO是制表符分隔。 通常我编辑用vim的文件和应用类似

 
:%s /^4250/\^S:CELL:lost from this point on 

如何做到这一点? 请注意,我有这样的多行,他们都有修复部分42506F0BB8和最后4位数将改变,不能重复,他们不是唯一的线,有其他人有不同的细节。因此,需要检测线路之间的所有固定部分并进行适当的替换。

+0

您的意见和预期输出是什么? – 2014-11-02 09:24:43

+0

正确:目前我有类似于^ S:CELL:425060BB814001。* $ WMHOME_PLUTO ^ S:CELL:425060BB814002。* $ WMHOME_PLUTO ^ S:CELL:425060BB814003。* $ WMHOME_PLUTO。我需要像改造它^ S:CELL:42506F0BB846D4 * $ WMHOME_Hebron ^ S:CELL:42506F0BB846D5 * $ WMHOME_Hebron ^ S:CELL:42506F0BB83AA3 * $ WMHOME_Hebron – 2014-11-02 10:18:54

+0

@MorganForever编辑功能,添加你有,你想得到什么。不要将这些信息置于评论中。 – Kent 2014-11-02 12:19:13

回答

0

你可以试试:

sed 's/42506F0BB8..../\^S:CELL:&\.\*\$\tWM_PLUTO/' file 
+0

对不起,我在描述中犯了一个错误。修复PArt是42506F0BB8然后我有500行,改变了最后4位数,所以我有42506F0BB83839,42506F0BB81234等等答案,但当然,因为我错了你的建议不起作用:-( – 2014-11-02 09:13:32

+0

只是增加4点,而不是。数字我将修改的答案@摩根永远 – josifoski 2014-11-02 09:25:30

+0

正确的:目前我有类似425060BB814001 425060BB814002 需要有作为outpunt^S:CELL:425060BB814001 * $ WMHOME_PLUTO^S:CELL:42506F0BB84002 * $ WMHOME_Hebron 这适用于500个不同的行 – 2014-11-02 10:26:32

1

只需更换 “从这个角度上失去了” 与&。在替换中,&将被任何匹配的替换。

:%s /^4250.*/\^S:CELL:&.*$<tab>WM_PLUTO