2014-11-02 73 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